1 /* A Bison parser, made by GNU Bison 2.4.3. */
3 /* Skeleton implementation for Bison's Yacc-like parsers in C
5 Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
6 2009, 2010 Free Software Foundation, Inc.
8 This program is free software: you can redistribute it and/or modify
9 it under the terms of the GNU General Public License as published by
10 the Free Software Foundation, either version 3 of the License, or
11 (at your option) any later version.
13 This program is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details.
18 You should have received a copy of the GNU General Public License
19 along with this program. If not, see <http://www.gnu.org/licenses/>. */
21 /* As a special exception, you may create a larger work that contains
22 part or all of the Bison parser skeleton and distribute that work
23 under terms of your choice, so long as that work isn't itself a
24 parser generator using the skeleton or a modified version thereof
25 as a parser skeleton. Alternatively, if you modify or redistribute
26 the parser skeleton itself, you may (at your option) remove this
27 special exception, which will cause the skeleton and the resulting
28 Bison output files to be licensed under the GNU General Public
29 License without this special exception.
31 This special exception was added by the Free Software Foundation in
32 version 2.2 of Bison. */
34 /* C LALR(1) parser skeleton written by Richard Stallman, by
35 simplifying the original so-called "semantic" parser. */
37 /* All symbols defined below should begin with yy or YY, to avoid
38 infringing on user name space. This should be done even for local
39 variables, as they might otherwise be expanded by user macros.
40 There are some unavoidable exceptions within include files to
41 define necessary library symbols; they are noted "INFRINGES ON
42 USER NAME SPACE" below. */
44 /* Identify Bison output. */
48 #define YYBISON_VERSION "2.4.3"
51 #define YYSKELETON_NAME "yacc.c"
62 /* Using locations. */
63 #define YYLSP_NEEDED 1
65 /* Substitute the variable and function names. */
66 #define yyparse _mesa_glsl_parse
67 #define yylex _mesa_glsl_lex
68 #define yyerror _mesa_glsl_error
69 #define yylval _mesa_glsl_lval
70 #define yychar _mesa_glsl_char
71 #define yydebug _mesa_glsl_debug
72 #define yynerrs _mesa_glsl_nerrs
73 #define yylloc _mesa_glsl_lloc
75 /* Copy the first part of user declarations. */
77 /* Line 189 of yacc.c */
78 #line 1 "glsl_parser.ypp"
81 * Copyright © 2008, 2009 Intel Corporation
83 * Permission is hereby granted, free of charge, to any person obtaining a
84 * copy of this software and associated documentation files (the "Software"),
85 * to deal in the Software without restriction, including without limitation
86 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
87 * and/or sell copies of the Software, and to permit persons to whom the
88 * Software is furnished to do so, subject to the following conditions:
90 * The above copyright notice and this permission notice (including the next
91 * paragraph) shall be included in all copies or substantial portions of the
94 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
95 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
96 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
97 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
98 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
99 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
100 * DEALINGS IN THE SOFTWARE.
108 #include "glsl_parser_extras.h"
109 #include "glsl_types.h"
111 #define YYLEX_PARAM state->scanner
115 /* Line 189 of yacc.c */
116 #line 117 "glsl_parser.cpp"
118 /* Enabling traces. */
123 /* Enabling verbose error messages. */
124 #ifdef YYERROR_VERBOSE
125 # undef YYERROR_VERBOSE
126 # define YYERROR_VERBOSE 1
128 # define YYERROR_VERBOSE 1
131 /* Enabling the token table. */
132 #ifndef YYTOKEN_TABLE
133 # define YYTOKEN_TABLE 0
140 /* Put the tokens into the symbol table, so that GDB and other debuggers
194 SAMPLER1DSHADOW
= 309,
195 SAMPLER2DSHADOW
= 310,
196 SAMPLERCUBESHADOW
= 311,
197 SAMPLER1DARRAY
= 312,
198 SAMPLER2DARRAY
= 313,
199 SAMPLER1DARRAYSHADOW
= 314,
200 SAMPLER2DARRAYSHADOW
= 315,
205 ISAMPLER1DARRAY
= 320,
206 ISAMPLER2DARRAY
= 321,
211 USAMPLER1DARRAY
= 326,
212 USAMPLER2DARRAY
= 327,
221 FIELD_SELECTION
= 336,
256 PRAGMA_DEBUG_ON
= 371,
257 PRAGMA_DEBUG_OFF
= 372,
258 PRAGMA_OPTIMIZE_ON
= 373,
259 PRAGMA_OPTIMIZE_OFF
= 374,
296 SAMPLER2DRECTSHADOW
= 411,
330 IMAGE1DARRAYSHADOW
= 445,
331 IMAGE2DARRAYSHADOW
= 446,
338 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
339 typedef union YYSTYPE
342 /* Line 214 of yacc.c */
343 #line 52 "glsl_parser.ypp"
349 struct ast_type_qualifier type_qualifier
;
352 ast_type_specifier
*type_specifier
;
353 ast_fully_specified_type
*fully_specified_type
;
354 ast_function
*function
;
355 ast_parameter_declarator
*parameter_declarator
;
356 ast_function_definition
*function_definition
;
357 ast_compound_statement
*compound_statement
;
358 ast_expression
*expression
;
359 ast_declarator_list
*declarator_list
;
360 ast_struct_specifier
*struct_specifier
;
361 ast_declaration
*declaration
;
365 ast_expression
*rest
;
366 } for_rest_statement
;
369 ast_node
*then_statement
;
370 ast_node
*else_statement
;
371 } selection_rest_statement
;
375 /* Line 214 of yacc.c */
376 #line 377 "glsl_parser.cpp"
378 # define YYSTYPE_IS_TRIVIAL 1
379 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
380 # define YYSTYPE_IS_DECLARED 1
383 #if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED
384 typedef struct YYLTYPE
391 # define yyltype YYLTYPE /* obsolescent; will be withdrawn */
392 # define YYLTYPE_IS_DECLARED 1
393 # define YYLTYPE_IS_TRIVIAL 1
397 /* Copy the second part of user declarations. */
400 /* Line 264 of yacc.c */
401 #line 402 "glsl_parser.cpp"
408 typedef YYTYPE_UINT8 yytype_uint8
;
410 typedef unsigned char yytype_uint8
;
414 typedef YYTYPE_INT8 yytype_int8
;
415 #elif (defined __STDC__ || defined __C99__FUNC__ \
416 || defined __cplusplus || defined _MSC_VER)
417 typedef signed char yytype_int8
;
419 typedef short int yytype_int8
;
423 typedef YYTYPE_UINT16 yytype_uint16
;
425 typedef unsigned short int yytype_uint16
;
429 typedef YYTYPE_INT16 yytype_int16
;
431 typedef short int yytype_int16
;
435 # ifdef __SIZE_TYPE__
436 # define YYSIZE_T __SIZE_TYPE__
437 # elif defined size_t
438 # define YYSIZE_T size_t
439 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
440 || defined __cplusplus || defined _MSC_VER)
441 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
442 # define YYSIZE_T size_t
444 # define YYSIZE_T unsigned int
448 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
451 # if defined YYENABLE_NLS && YYENABLE_NLS
453 # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
454 # define YY_(msgid) dgettext ("bison-runtime", msgid)
458 # define YY_(msgid) msgid
462 /* Suppress unused-variable warnings by "using" E. */
463 #if ! defined lint || defined __GNUC__
464 # define YYUSE(e) ((void) (e))
466 # define YYUSE(e) /* empty */
469 /* Identity function, used to suppress warnings about constant conditions. */
473 #if (defined __STDC__ || defined __C99__FUNC__ \
474 || defined __cplusplus || defined _MSC_VER)
487 #if ! defined yyoverflow || YYERROR_VERBOSE
489 /* The parser invokes alloca or malloc; define the necessary symbols. */
491 # ifdef YYSTACK_USE_ALLOCA
492 # if YYSTACK_USE_ALLOCA
494 # define YYSTACK_ALLOC __builtin_alloca
495 # elif defined __BUILTIN_VA_ARG_INCR
496 # include <alloca.h> /* INFRINGES ON USER NAME SPACE */
498 # define YYSTACK_ALLOC __alloca
499 # elif defined _MSC_VER
500 # include <malloc.h> /* INFRINGES ON USER NAME SPACE */
501 # define alloca _alloca
503 # define YYSTACK_ALLOC alloca
504 # if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
505 || defined __cplusplus || defined _MSC_VER)
506 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
515 # ifdef YYSTACK_ALLOC
516 /* Pacify GCC's `empty if-body' warning. */
517 # define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
518 # ifndef YYSTACK_ALLOC_MAXIMUM
519 /* The OS might guarantee only one guard page at the bottom of the stack,
520 and a page size can be as small as 4096 bytes. So we cannot safely
521 invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
522 to allow for a few compiler-allocated temporary stack slots. */
523 # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
526 # define YYSTACK_ALLOC YYMALLOC
527 # define YYSTACK_FREE YYFREE
528 # ifndef YYSTACK_ALLOC_MAXIMUM
529 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
531 # if (defined __cplusplus && ! defined _STDLIB_H \
532 && ! ((defined YYMALLOC || defined malloc) \
533 && (defined YYFREE || defined free)))
534 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
540 # define YYMALLOC malloc
541 # if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
542 || defined __cplusplus || defined _MSC_VER)
543 void *malloc (YYSIZE_T
); /* INFRINGES ON USER NAME SPACE */
548 # if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
549 || defined __cplusplus || defined _MSC_VER)
550 void free (void *); /* INFRINGES ON USER NAME SPACE */
554 #endif /* ! defined yyoverflow || YYERROR_VERBOSE */
557 #if (! defined yyoverflow \
558 && (! defined __cplusplus \
559 || (defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL \
560 && defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
562 /* A type that is properly aligned for any stack member. */
565 yytype_int16 yyss_alloc
;
570 /* The size of the maximum gap between one aligned stack and the next. */
571 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
573 /* The size of an array large to enough to hold all stacks, each with
575 # define YYSTACK_BYTES(N) \
576 ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \
577 + 2 * YYSTACK_GAP_MAXIMUM)
579 /* Copy COUNT objects from FROM to TO. The source and destination do
582 # if defined __GNUC__ && 1 < __GNUC__
583 # define YYCOPY(To, From, Count) \
584 __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
586 # define YYCOPY(To, From, Count) \
590 for (yyi = 0; yyi < (Count); yyi++) \
591 (To)[yyi] = (From)[yyi]; \
597 /* Relocate STACK from its old location to the new one. The
598 local variables YYSIZE and YYSTACKSIZE give the old and new number of
599 elements in the stack, and YYPTR gives the new location of the
600 stack. Advance YYPTR to a properly aligned location for the next
602 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \
605 YYSIZE_T yynewbytes; \
606 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
607 Stack = &yyptr->Stack_alloc; \
608 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
609 yyptr += yynewbytes / sizeof (*yyptr); \
615 /* YYFINAL -- State number of the termination state. */
617 /* YYLAST -- Last index in YYTABLE. */
620 /* YYNTOKENS -- Number of terminals. */
621 #define YYNTOKENS 217
622 /* YYNNTS -- Number of nonterminals. */
624 /* YYNRULES -- Number of rules. */
626 /* YYNRULES -- Number of states. */
627 #define YYNSTATES 413
629 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
631 #define YYMAXUTOK 447
633 #define YYTRANSLATE(YYX) \
634 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
636 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
637 static const yytype_uint8 yytranslate
[] =
639 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
640 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
641 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
642 2, 2, 2, 201, 2, 2, 2, 205, 208, 2,
643 193, 194, 203, 199, 198, 200, 197, 204, 2, 2,
644 2, 2, 2, 2, 2, 2, 2, 2, 212, 214,
645 206, 213, 207, 211, 2, 2, 2, 2, 2, 2,
646 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
647 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
648 2, 195, 2, 196, 209, 2, 2, 2, 2, 2,
649 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
650 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
651 2, 2, 2, 215, 210, 216, 202, 2, 2, 2,
652 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
653 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
654 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
655 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
656 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
657 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
658 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
659 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
660 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
661 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
662 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
663 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
664 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
665 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
666 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
667 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
668 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
669 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
670 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
671 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
672 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
673 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
674 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
675 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
676 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
677 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
678 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
679 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
680 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
681 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
682 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
683 185, 186, 187, 188, 189, 190, 191, 192
687 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
689 static const yytype_uint16 yyprhs
[] =
691 0, 0, 3, 4, 9, 10, 14, 17, 20, 23,
692 26, 27, 30, 36, 38, 41, 43, 45, 47, 49,
693 51, 53, 57, 59, 64, 66, 70, 73, 76, 78,
694 80, 82, 86, 89, 92, 95, 97, 100, 104, 107,
695 109, 111, 113, 115, 118, 121, 124, 126, 128, 130,
696 132, 134, 138, 142, 146, 148, 152, 156, 158, 162,
697 166, 168, 172, 176, 180, 184, 186, 190, 194, 196,
698 200, 202, 206, 208, 212, 214, 218, 220, 224, 226,
699 230, 232, 238, 240, 244, 246, 248, 250, 252, 254,
700 256, 258, 260, 262, 264, 266, 268, 272, 274, 277,
701 280, 285, 288, 290, 292, 295, 299, 303, 306, 312,
702 316, 319, 323, 326, 327, 329, 331, 333, 335, 337,
703 341, 347, 354, 362, 371, 377, 379, 382, 387, 393,
704 400, 408, 413, 416, 418, 421, 426, 428, 432, 434,
705 438, 440, 442, 444, 446, 448, 450, 453, 455, 458,
706 461, 465, 467, 469, 471, 473, 476, 478, 480, 483,
707 486, 488, 490, 493, 495, 499, 504, 506, 508, 510,
708 512, 514, 516, 518, 520, 522, 524, 526, 528, 530,
709 532, 534, 536, 538, 540, 542, 544, 546, 548, 550,
710 552, 554, 556, 558, 560, 562, 564, 566, 568, 570,
711 572, 574, 576, 578, 580, 582, 584, 586, 588, 590,
712 592, 594, 596, 598, 600, 602, 604, 606, 608, 610,
713 612, 614, 616, 618, 624, 629, 631, 634, 638, 640,
714 644, 646, 651, 653, 655, 657, 659, 661, 663, 665,
715 667, 669, 671, 673, 676, 680, 682, 684, 687, 691,
716 693, 696, 698, 701, 707, 711, 713, 715, 720, 726,
717 730, 733, 739, 747, 754, 756, 758, 760, 761, 764,
718 768, 771, 774, 777, 781, 784, 786, 788, 790
721 /* YYRHS -- A `-1'-separated list of the rules' RHS. */
722 static const yytype_int16 yyrhs
[] =
724 218, 0, -1, -1, 220, 222, 219, 224, -1, -1,
725 109, 78, 113, -1, 116, 113, -1, 117, 113, -1,
726 118, 113, -1, 119, 113, -1, -1, 222, 223, -1,
727 110, 76, 112, 76, 113, -1, 302, -1, 224, 302,
728 -1, 76, -1, 225, -1, 78, -1, 79, -1, 77,
729 -1, 80, -1, 193, 252, 194, -1, 226, -1, 227,
730 195, 228, 196, -1, 229, -1, 227, 197, 76, -1,
731 227, 84, -1, 227, 85, -1, 252, -1, 230, -1,
732 231, -1, 227, 197, 231, -1, 233, 194, -1, 232,
733 194, -1, 234, 74, -1, 234, -1, 234, 250, -1,
734 233, 198, 250, -1, 235, 193, -1, 273, -1, 76,
735 -1, 81, -1, 227, -1, 84, 236, -1, 85, 236,
736 -1, 237, 236, -1, 199, -1, 200, -1, 201, -1,
737 202, -1, 236, -1, 238, 203, 236, -1, 238, 204,
738 236, -1, 238, 205, 236, -1, 238, -1, 239, 199,
739 238, -1, 239, 200, 238, -1, 239, -1, 240, 82,
740 239, -1, 240, 83, 239, -1, 240, -1, 241, 206,
741 240, -1, 241, 207, 240, -1, 241, 86, 240, -1,
742 241, 87, 240, -1, 241, -1, 242, 88, 241, -1,
743 242, 89, 241, -1, 242, -1, 243, 208, 242, -1,
744 243, -1, 244, 209, 243, -1, 244, -1, 245, 210,
745 244, -1, 245, -1, 246, 90, 245, -1, 246, -1,
746 247, 92, 246, -1, 247, -1, 248, 91, 247, -1,
747 248, -1, 248, 211, 252, 212, 250, -1, 249, -1,
748 236, 251, 250, -1, 213, -1, 93, -1, 94, -1,
749 96, -1, 95, -1, 102, -1, 97, -1, 98, -1,
750 99, -1, 100, -1, 101, -1, 250, -1, 252, 198,
751 250, -1, 249, -1, 255, 214, -1, 263, 214, -1,
752 108, 277, 274, 214, -1, 256, 194, -1, 258, -1,
753 257, -1, 258, 260, -1, 257, 198, 260, -1, 265,
754 76, 193, -1, 273, 76, -1, 273, 76, 195, 253,
755 196, -1, 270, 261, 259, -1, 261, 259, -1, 270,
756 261, 262, -1, 261, 262, -1, -1, 33, -1, 34,
757 -1, 35, -1, 273, -1, 264, -1, 263, 198, 76,
758 -1, 263, 198, 76, 195, 196, -1, 263, 198, 76,
759 195, 253, 196, -1, 263, 198, 76, 195, 196, 213,
760 283, -1, 263, 198, 76, 195, 253, 196, 213, 283,
761 -1, 263, 198, 76, 213, 283, -1, 265, -1, 265,
762 76, -1, 265, 76, 195, 196, -1, 265, 76, 195,
763 253, 196, -1, 265, 76, 195, 196, 213, 283, -1,
764 265, 76, 195, 253, 196, 213, 283, -1, 265, 76,
765 213, 283, -1, 103, 76, -1, 273, -1, 271, 273,
766 -1, 120, 193, 267, 194, -1, 268, -1, 267, 198,
767 268, -1, 76, -1, 76, 213, 78, -1, 40, -1,
768 39, -1, 38, -1, 4, -1, 272, -1, 266, -1,
769 266, 272, -1, 269, -1, 269, 272, -1, 103, 272,
770 -1, 103, 269, 272, -1, 103, -1, 4, -1, 3,
771 -1, 37, -1, 32, 37, -1, 33, -1, 34, -1,
772 32, 33, -1, 32, 34, -1, 36, -1, 274, -1,
773 277, 274, -1, 275, -1, 275, 195, 196, -1, 275,
774 195, 253, 196, -1, 276, -1, 278, -1, 76, -1,
775 74, -1, 6, -1, 7, -1, 8, -1, 5, -1,
776 29, -1, 30, -1, 31, -1, 20, -1, 21, -1,
777 22, -1, 23, -1, 24, -1, 25, -1, 26, -1,
778 27, -1, 28, -1, 41, -1, 42, -1, 43, -1,
779 44, -1, 45, -1, 46, -1, 47, -1, 48, -1,
780 49, -1, 50, -1, 51, -1, 154, -1, 52, -1,
781 53, -1, 54, -1, 55, -1, 156, -1, 56, -1,
782 57, -1, 58, -1, 59, -1, 60, -1, 61, -1,
783 62, -1, 63, -1, 64, -1, 65, -1, 66, -1,
784 67, -1, 68, -1, 69, -1, 70, -1, 71, -1,
785 72, -1, 106, -1, 105, -1, 104, -1, 73, 76,
786 215, 279, 216, -1, 73, 215, 279, 216, -1, 280,
787 -1, 279, 280, -1, 273, 281, 214, -1, 282, -1,
788 281, 198, 282, -1, 76, -1, 76, 195, 253, 196,
789 -1, 250, -1, 254, -1, 287, -1, 286, -1, 284,
790 -1, 291, -1, 292, -1, 295, -1, 296, -1, 297,
791 -1, 301, -1, 215, 216, -1, 215, 290, 216, -1,
792 289, -1, 286, -1, 215, 216, -1, 215, 290, 216,
793 -1, 285, -1, 290, 285, -1, 214, -1, 252, 214,
794 -1, 14, 193, 252, 194, 293, -1, 285, 12, 285,
795 -1, 285, -1, 252, -1, 265, 76, 213, 283, -1,
796 17, 193, 252, 194, 287, -1, 18, 252, 212, -1,
797 19, 212, -1, 75, 193, 294, 194, 288, -1, 11,
798 285, 75, 193, 252, 194, 214, -1, 13, 193, 298,
799 300, 194, 288, -1, 291, -1, 284, -1, 294, -1,
800 -1, 299, 214, -1, 299, 214, 252, -1, 10, 214,
801 -1, 9, 214, -1, 16, 214, -1, 16, 252, 214,
802 -1, 15, 214, -1, 303, -1, 254, -1, 221, -1,
806 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
807 static const yytype_uint16 yyrline
[] =
809 0, 212, 212, 211, 218, 220, 240, 241, 242, 243,
810 246, 248, 252, 261, 269, 280, 284, 291, 298, 305,
811 312, 319, 326, 327, 333, 337, 344, 350, 359, 363,
812 367, 368, 377, 378, 382, 383, 387, 393, 405, 409,
813 415, 422, 433, 434, 440, 446, 456, 457, 458, 459,
814 463, 464, 470, 476, 485, 486, 492, 501, 502, 508,
815 517, 518, 524, 530, 536, 545, 546, 552, 561, 562,
816 571, 572, 581, 582, 591, 592, 601, 602, 611, 612,
817 621, 622, 631, 632, 641, 642, 643, 644, 645, 646,
818 647, 648, 649, 650, 651, 655, 659, 675, 679, 683,
819 687, 701, 705, 706, 710, 715, 723, 734, 744, 759,
820 766, 771, 782, 795, 798, 803, 808, 817, 821, 822,
821 831, 840, 849, 858, 867, 880, 891, 900, 909, 918,
822 927, 936, 945, 959, 966, 977, 984, 985, 1004, 1033,
823 1074, 1079, 1084, 1092, 1100, 1101, 1102, 1107, 1108, 1113,
824 1118, 1124, 1132, 1137, 1142, 1147, 1153, 1158, 1163, 1168,
825 1173, 1181, 1182, 1190, 1191, 1197, 1206, 1212, 1218, 1227,
826 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237,
827 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247,
828 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257,
829 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267,
830 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277,
831 1281, 1292, 1303, 1317, 1323, 1332, 1337, 1345, 1360, 1365,
832 1373, 1379, 1388, 1392, 1398, 1399, 1403, 1404, 1405, 1406,
833 1407, 1408, 1409, 1413, 1419, 1428, 1429, 1433, 1439, 1448,
834 1458, 1470, 1476, 1485, 1494, 1499, 1507, 1511, 1525, 1529,
835 1530, 1534, 1541, 1548, 1558, 1559, 1563, 1565, 1571, 1576,
836 1585, 1591, 1597, 1603, 1609, 1618, 1619, 1620, 1624
840 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
841 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
842 First, the terminals, then, starting at YYNTOKENS, nonterminals. */
843 static const char *const yytname
[] =
845 "$end", "error", "$undefined", "ATTRIBUTE", "CONST_TOK", "BOOL_TOK",
846 "FLOAT_TOK", "INT_TOK", "UINT_TOK", "BREAK", "CONTINUE", "DO", "ELSE",
847 "FOR", "IF", "DISCARD", "RETURN", "SWITCH", "CASE", "DEFAULT", "BVEC2",
848 "BVEC3", "BVEC4", "IVEC2", "IVEC3", "IVEC4", "UVEC2", "UVEC3", "UVEC4",
849 "VEC2", "VEC3", "VEC4", "CENTROID", "IN_TOK", "OUT_TOK", "INOUT_TOK",
850 "UNIFORM", "VARYING", "NOPERSPECTIVE", "FLAT", "SMOOTH", "MAT2X2",
851 "MAT2X3", "MAT2X4", "MAT3X2", "MAT3X3", "MAT3X4", "MAT4X2", "MAT4X3",
852 "MAT4X4", "SAMPLER1D", "SAMPLER2D", "SAMPLER3D", "SAMPLERCUBE",
853 "SAMPLER1DSHADOW", "SAMPLER2DSHADOW", "SAMPLERCUBESHADOW",
854 "SAMPLER1DARRAY", "SAMPLER2DARRAY", "SAMPLER1DARRAYSHADOW",
855 "SAMPLER2DARRAYSHADOW", "ISAMPLER1D", "ISAMPLER2D", "ISAMPLER3D",
856 "ISAMPLERCUBE", "ISAMPLER1DARRAY", "ISAMPLER2DARRAY", "USAMPLER1D",
857 "USAMPLER2D", "USAMPLER3D", "USAMPLERCUBE", "USAMPLER1DARRAY",
858 "USAMPLER2DARRAY", "STRUCT", "VOID_TOK", "WHILE", "IDENTIFIER",
859 "FLOATCONSTANT", "INTCONSTANT", "UINTCONSTANT", "BOOLCONSTANT",
860 "FIELD_SELECTION", "LEFT_OP", "RIGHT_OP", "INC_OP", "DEC_OP", "LE_OP",
861 "GE_OP", "EQ_OP", "NE_OP", "AND_OP", "OR_OP", "XOR_OP", "MUL_ASSIGN",
862 "DIV_ASSIGN", "ADD_ASSIGN", "MOD_ASSIGN", "LEFT_ASSIGN", "RIGHT_ASSIGN",
863 "AND_ASSIGN", "XOR_ASSIGN", "OR_ASSIGN", "SUB_ASSIGN", "INVARIANT",
864 "LOWP", "MEDIUMP", "HIGHP", "SUPERP", "PRECISION", "VERSION",
865 "EXTENSION", "LINE", "COLON", "EOL", "INTERFACE", "OUTPUT",
866 "PRAGMA_DEBUG_ON", "PRAGMA_DEBUG_OFF", "PRAGMA_OPTIMIZE_ON",
867 "PRAGMA_OPTIMIZE_OFF", "LAYOUT_TOK", "ASM", "CLASS", "UNION", "ENUM",
868 "TYPEDEF", "TEMPLATE", "THIS", "PACKED_TOK", "GOTO", "INLINE_TOK",
869 "NOINLINE", "VOLATILE", "PUBLIC_TOK", "STATIC", "EXTERN", "EXTERNAL",
870 "LONG_TOK", "SHORT_TOK", "DOUBLE_TOK", "HALF", "FIXED_TOK", "UNSIGNED",
871 "INPUT_TOK", "OUPTUT", "HVEC2", "HVEC3", "HVEC4", "DVEC2", "DVEC3",
872 "DVEC4", "FVEC2", "FVEC3", "FVEC4", "SAMPLER2DRECT", "SAMPLER3DRECT",
873 "SAMPLER2DRECTSHADOW", "SIZEOF", "CAST", "NAMESPACE", "USING",
874 "ERROR_TOK", "COMMON", "PARTITION", "ACTIVE", "SAMPLERBUFFER", "FILTER",
875 "IMAGE1D", "IMAGE2D", "IMAGE3D", "IMAGECUBE", "IMAGE1DARRAY",
876 "IMAGE2DARRAY", "IIMAGE1D", "IIMAGE2D", "IIMAGE3D", "IIMAGECUBE",
877 "IIMAGE1DARRAY", "IIMAGE2DARRAY", "UIMAGE1D", "UIMAGE2D", "UIMAGE3D",
878 "UIMAGECUBE", "UIMAGE1DARRAY", "UIMAGE2DARRAY", "IMAGE1DSHADOW",
879 "IMAGE2DSHADOW", "IMAGEBUFFER", "IIMAGEBUFFER", "UIMAGEBUFFER",
880 "IMAGE1DARRAYSHADOW", "IMAGE2DARRAYSHADOW", "ROW_MAJOR", "'('", "')'",
881 "'['", "']'", "'.'", "','", "'+'", "'-'", "'!'", "'~'", "'*'", "'/'",
882 "'%'", "'<'", "'>'", "'&'", "'^'", "'|'", "'?'", "':'", "'='", "';'",
883 "'{'", "'}'", "$accept", "translation_unit", "$@1", "version_statement",
884 "pragma_statement", "extension_statement_list", "extension_statement",
885 "external_declaration_list", "variable_identifier", "primary_expression",
886 "postfix_expression", "integer_expression", "function_call",
887 "function_call_or_method", "function_call_generic",
888 "function_call_header_no_parameters",
889 "function_call_header_with_parameters", "function_call_header",
890 "function_identifier", "unary_expression", "unary_operator",
891 "multiplicative_expression", "additive_expression", "shift_expression",
892 "relational_expression", "equality_expression", "and_expression",
893 "exclusive_or_expression", "inclusive_or_expression",
894 "logical_and_expression", "logical_xor_expression",
895 "logical_or_expression", "conditional_expression",
896 "assignment_expression", "assignment_operator", "expression",
897 "constant_expression", "declaration", "function_prototype",
898 "function_declarator", "function_header_with_parameters",
899 "function_header", "parameter_declarator", "parameter_declaration",
900 "parameter_qualifier", "parameter_type_specifier",
901 "init_declarator_list", "single_declaration", "fully_specified_type",
902 "layout_qualifier", "layout_qualifier_id_list", "layout_qualifier_id",
903 "interpolation_qualifier", "parameter_type_qualifier", "type_qualifier",
904 "storage_qualifier", "type_specifier", "type_specifier_no_prec",
905 "type_specifier_nonarray", "basic_type_specifier_nonarray",
906 "precision_qualifier", "struct_specifier", "struct_declaration_list",
907 "struct_declaration", "struct_declarator_list", "struct_declarator",
908 "initializer", "declaration_statement", "statement", "simple_statement",
909 "compound_statement", "statement_no_new_scope",
910 "compound_statement_no_new_scope", "statement_list",
911 "expression_statement", "selection_statement",
912 "selection_rest_statement", "condition", "switch_statement",
913 "case_label", "iteration_statement", "for_init_statement",
914 "conditionopt", "for_rest_statement", "jump_statement",
915 "external_declaration", "function_definition", 0
920 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
922 static const yytype_uint16 yytoknum
[] =
924 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
925 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
926 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
927 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
928 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
929 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
930 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
931 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
932 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
933 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
934 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
935 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
936 375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
937 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
938 395, 396, 397, 398, 399, 400, 401, 402, 403, 404,
939 405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
940 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
941 425, 426, 427, 428, 429, 430, 431, 432, 433, 434,
942 435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
943 445, 446, 447, 40, 41, 91, 93, 46, 44, 43,
944 45, 33, 126, 42, 47, 37, 60, 62, 38, 94,
945 124, 63, 58, 61, 59, 123, 125
949 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
950 static const yytype_uint16 yyr1
[] =
952 0, 217, 219, 218, 220, 220, 221, 221, 221, 221,
953 222, 222, 223, 224, 224, 225, 226, 226, 226, 226,
954 226, 226, 227, 227, 227, 227, 227, 227, 228, 229,
955 230, 230, 231, 231, 232, 232, 233, 233, 234, 235,
956 235, 235, 236, 236, 236, 236, 237, 237, 237, 237,
957 238, 238, 238, 238, 239, 239, 239, 240, 240, 240,
958 241, 241, 241, 241, 241, 242, 242, 242, 243, 243,
959 244, 244, 245, 245, 246, 246, 247, 247, 248, 248,
960 249, 249, 250, 250, 251, 251, 251, 251, 251, 251,
961 251, 251, 251, 251, 251, 252, 252, 253, 254, 254,
962 254, 255, 256, 256, 257, 257, 258, 259, 259, 260,
963 260, 260, 260, 261, 261, 261, 261, 262, 263, 263,
964 263, 263, 263, 263, 263, 264, 264, 264, 264, 264,
965 264, 264, 264, 265, 265, 266, 267, 267, 268, 268,
966 269, 269, 269, 270, 271, 271, 271, 271, 271, 271,
967 271, 271, 272, 272, 272, 272, 272, 272, 272, 272,
968 272, 273, 273, 274, 274, 274, 275, 275, 275, 276,
969 276, 276, 276, 276, 276, 276, 276, 276, 276, 276,
970 276, 276, 276, 276, 276, 276, 276, 276, 276, 276,
971 276, 276, 276, 276, 276, 276, 276, 276, 276, 276,
972 276, 276, 276, 276, 276, 276, 276, 276, 276, 276,
973 276, 276, 276, 276, 276, 276, 276, 276, 276, 276,
974 277, 277, 277, 278, 278, 279, 279, 280, 281, 281,
975 282, 282, 283, 284, 285, 285, 286, 286, 286, 286,
976 286, 286, 286, 287, 287, 288, 288, 289, 289, 290,
977 290, 291, 291, 292, 293, 293, 294, 294, 295, 296,
978 296, 297, 297, 297, 298, 298, 299, 299, 300, 300,
979 301, 301, 301, 301, 301, 302, 302, 302, 303
982 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
983 static const yytype_uint8 yyr2
[] =
985 0, 2, 0, 4, 0, 3, 2, 2, 2, 2,
986 0, 2, 5, 1, 2, 1, 1, 1, 1, 1,
987 1, 3, 1, 4, 1, 3, 2, 2, 1, 1,
988 1, 3, 2, 2, 2, 1, 2, 3, 2, 1,
989 1, 1, 1, 2, 2, 2, 1, 1, 1, 1,
990 1, 3, 3, 3, 1, 3, 3, 1, 3, 3,
991 1, 3, 3, 3, 3, 1, 3, 3, 1, 3,
992 1, 3, 1, 3, 1, 3, 1, 3, 1, 3,
993 1, 5, 1, 3, 1, 1, 1, 1, 1, 1,
994 1, 1, 1, 1, 1, 1, 3, 1, 2, 2,
995 4, 2, 1, 1, 2, 3, 3, 2, 5, 3,
996 2, 3, 2, 0, 1, 1, 1, 1, 1, 3,
997 5, 6, 7, 8, 5, 1, 2, 4, 5, 6,
998 7, 4, 2, 1, 2, 4, 1, 3, 1, 3,
999 1, 1, 1, 1, 1, 1, 2, 1, 2, 2,
1000 3, 1, 1, 1, 1, 2, 1, 1, 2, 2,
1001 1, 1, 2, 1, 3, 4, 1, 1, 1, 1,
1002 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1003 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1004 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1005 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1006 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1007 1, 1, 1, 5, 4, 1, 2, 3, 1, 3,
1008 1, 4, 1, 1, 1, 1, 1, 1, 1, 1,
1009 1, 1, 1, 2, 3, 1, 1, 2, 3, 1,
1010 2, 1, 2, 5, 3, 1, 1, 4, 5, 3,
1011 2, 5, 7, 6, 1, 1, 1, 0, 2, 3,
1012 2, 2, 2, 3, 2, 1, 1, 1, 2
1015 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
1016 STATE-NUM when YYTABLE doesn't specify something else to do. Zero
1017 means the default is an error. */
1018 static const yytype_uint16 yydefact
[] =
1020 4, 0, 0, 10, 0, 1, 2, 5, 0, 0,
1021 11, 0, 153, 152, 173, 170, 171, 172, 177, 178,
1022 179, 180, 181, 182, 183, 184, 185, 174, 175, 176,
1023 0, 156, 157, 160, 154, 142, 141, 140, 186, 187,
1024 188, 189, 190, 191, 192, 193, 194, 195, 196, 198,
1025 199, 200, 201, 203, 204, 205, 206, 207, 208, 209,
1026 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
1027 0, 169, 168, 151, 222, 221, 220, 0, 0, 0,
1028 0, 0, 0, 197, 202, 277, 3, 276, 0, 0,
1029 103, 113, 0, 118, 125, 145, 147, 0, 144, 133,
1030 161, 163, 166, 0, 167, 13, 275, 0, 158, 159,
1031 155, 0, 0, 132, 0, 149, 0, 6, 7, 8,
1032 9, 0, 14, 98, 0, 278, 101, 113, 143, 114,
1033 115, 116, 104, 0, 113, 0, 99, 126, 146, 148,
1034 134, 0, 162, 0, 0, 0, 0, 225, 150, 0,
1035 138, 0, 136, 0, 0, 0, 0, 0, 0, 0,
1036 0, 0, 0, 0, 15, 19, 17, 18, 20, 41,
1037 0, 0, 0, 46, 47, 48, 49, 251, 0, 247,
1038 16, 22, 42, 24, 29, 30, 0, 0, 35, 0,
1039 50, 0, 54, 57, 60, 65, 68, 70, 72, 74,
1040 76, 78, 80, 82, 95, 0, 233, 0, 133, 236,
1041 249, 235, 234, 0, 237, 238, 239, 240, 241, 242,
1042 105, 110, 112, 117, 0, 119, 106, 0, 0, 164,
1043 50, 97, 0, 39, 12, 0, 230, 0, 228, 224,
1044 226, 100, 0, 135, 0, 271, 270, 0, 0, 0,
1045 274, 272, 0, 0, 0, 260, 0, 43, 44, 0,
1046 243, 0, 26, 27, 0, 0, 33, 32, 0, 169,
1047 36, 38, 85, 86, 88, 87, 90, 91, 92, 93,
1048 94, 89, 84, 0, 45, 0, 0, 0, 0, 0,
1049 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1050 0, 0, 0, 0, 0, 0, 252, 248, 250, 107,
1051 109, 111, 0, 0, 127, 0, 232, 131, 165, 223,
1052 0, 0, 227, 139, 137, 0, 265, 264, 267, 0,
1053 273, 0, 259, 151, 256, 0, 0, 21, 244, 0,
1054 28, 25, 31, 37, 83, 51, 52, 53, 55, 56,
1055 58, 59, 63, 64, 61, 62, 66, 67, 69, 71,
1056 73, 75, 77, 79, 0, 96, 0, 120, 0, 124,
1057 0, 128, 0, 229, 0, 266, 0, 0, 0, 0,
1058 0, 0, 23, 0, 0, 0, 121, 129, 0, 231,
1059 0, 268, 0, 255, 253, 258, 0, 246, 261, 245,
1060 81, 108, 122, 0, 130, 0, 269, 263, 0, 257,
1064 /* YYDEFGOTO[NTERM-NUM]. */
1065 static const yytype_int16 yydefgoto
[] =
1067 -1, 2, 9, 3, 85, 6, 10, 86, 180, 181,
1068 182, 339, 183, 184, 185, 186, 187, 188, 189, 190,
1069 191, 192, 193, 194, 195, 196, 197, 198, 199, 200,
1070 201, 202, 203, 204, 283, 205, 232, 206, 207, 89,
1071 90, 91, 221, 132, 133, 222, 92, 93, 94, 95,
1072 151, 152, 96, 134, 97, 98, 233, 100, 101, 102,
1073 103, 104, 146, 147, 237, 238, 317, 209, 210, 211,
1074 212, 398, 399, 213, 214, 215, 394, 336, 216, 217,
1075 218, 328, 376, 377, 219, 105, 106
1078 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1080 #define YYPACT_NINF -350
1081 static const yytype_int16 yypact
[] =
1083 -78, -56, 54, -350, -52, -350, -37, -350, 8, 3302,
1084 -350, -26, -350, -350, -350, -350, -350, -350, -350, -350,
1085 -350, -350, -350, -350, -350, -350, -350, -350, -350, -350,
1086 88, -350, -350, -350, -350, -350, -350, -350, -350, -350,
1087 -350, -350, -350, -350, -350, -350, -350, -350, -350, -350,
1088 -350, -350, -350, -350, -350, -350, -350, -350, -350, -350,
1089 -350, -350, -350, -350, -350, -350, -350, -350, -350, -350,
1090 -66, -350, -350, 42, -350, -350, -350, 70, -4, 10,
1091 29, 34, -79, -350, -350, -350, 3302, -350, -19, -24,
1092 -69, 5, -154, -350, 102, 16, 16, 3490, -350, -350,
1093 -350, 18, -350, 3562, -350, -350, -350, 108, -350, -350,
1094 -350, -8, 3490, -350, 16, -350, 3562, -350, -350, -350,
1095 -350, 138, -350, -350, 387, -350, -350, 24, -350, -350,
1096 -350, -350, -350, 3490, 147, 141, -350, -166, -350, -350,
1097 -350, 2387, -350, 106, 3490, 144, 1772, -350, -350, 7,
1098 11, -87, -350, 14, 15, 1243, 30, 32, 20, 2004,
1099 37, 2936, 25, 39, -65, -350, -350, -350, -350, -350,
1100 2936, 2936, 2936, -350, -350, -350, -350, -350, 601, -350,
1101 -350, -350, -59, -350, -350, -350, 28, -82, 3119, 43,
1102 -30, 2936, -11, -2, 118, -74, 114, 35, 31, 36,
1103 148, 152, -77, -350, -350, -115, -350, 40, 52, -350,
1104 -350, -350, -350, 815, -350, -350, -350, -350, -350, -350,
1105 -350, -350, -350, 172, 3490, -180, -350, 2570, 2936, -350,
1106 -350, -350, 53, -350, -350, 1888, 55, -113, -350, -350,
1107 -350, -350, 173, -350, 138, -350, -350, 178, 1656, 2936,
1108 -350, -350, -108, 2936, -161, -350, 2204, -350, -350, -68,
1109 -350, 1029, -350, -350, 2936, 3418, -350, -350, 2936, 61,
1110 -350, -350, -350, -350, -350, -350, -350, -350, -350, -350,
1111 -350, -350, -350, 2936, -350, 2936, 2936, 2936, 2936, 2936,
1112 2936, 2936, 2936, 2936, 2936, 2936, 2936, 2936, 2936, 2936,
1113 2936, 2936, 2936, 2936, 2936, 2936, -350, -350, -350, 63,
1114 -350, -350, 2753, 2936, 46, 60, -350, -350, -350, -350,
1115 2936, 144, -350, -350, -350, 67, -350, -350, 2204, -55,
1116 -350, -54, -350, 238, 65, 188, 71, -350, -350, 72,
1117 65, 73, -350, -350, -350, -350, -350, -350, -11, -11,
1118 -2, -2, 118, 118, 118, 118, -74, -74, 114, 35,
1119 31, 36, 148, 152, -157, -350, 2936, 56, 83, -350,
1120 2936, 68, 84, -350, 2936, -350, 69, 90, 1243, 74,
1121 77, 1456, -350, 2936, 86, 2936, 79, -350, 2936, -350,
1122 -53, 2936, 1456, 255, -350, -350, 2936, -350, -350, -350,
1123 -350, -350, -350, 2936, -350, 80, 65, -350, 1243, -350,
1127 /* YYPGOTO[NTERM-NUM]. */
1128 static const yytype_int16 yypgoto
[] =
1130 -350, -350, -350, -350, -350, -350, -350, -350, -350, -350,
1131 -350, -350, -350, -350, 22, -350, -350, -350, -350, -135,
1132 -350, -83, -81, -104, -85, -13, -6, -5, -3, -1,
1133 -7, -350, -133, -97, -350, -156, -193, 9, 12, -350,
1134 -350, -350, 76, 170, 168, 81, -350, -350, -239, -350,
1135 -350, 59, -71, -350, -350, -72, -9, 1, -350, -350,
1136 227, -350, 163, -139, -350, -12, -283, 62, -151, -349,
1137 -67, -84, 223, 135, 66, -350, -350, -10, -350, -350,
1138 -350, -350, -350, -350, -350, 229, -350
1141 /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
1142 positive, shift that token. If negative, reduce the rule which
1143 number is the opposite. If zero, do what YYDEFACT says.
1144 If YYTABLE_NINF, syntax error. */
1145 #define YYTABLE_NINF -169
1146 static const yytype_int16 yytable
[] =
1148 99, 115, 114, 252, 247, 254, 230, 240, 231, 128,
1149 111, -168, 292, 293, 303, 312, 259, 335, 87, 12,
1150 13, 88, 4, 138, 139, 262, 263, 226, 128, 227,
1151 369, 1, 397, 313, 315, 257, 258, 305, 129, 130,
1152 131, 305, 148, 397, 135, 12, 13, 228, 30, 31,
1153 32, 332, 33, 34, 5, 383, 284, 129, 130, 131,
1154 136, 7, 308, 272, 273, 274, 275, 276, 277, 278,
1155 279, 280, 281, 8, 30, 31, 32, 99, 33, 34,
1156 35, 36, 37, 305, 11, 321, 107, 387, 140, 335,
1157 305, 270, 230, 329, 231, 87, 240, 331, 88, 306,
1158 334, 322, 402, 145, 142, 404, 330, 243, 340, 117,
1159 308, 244, 267, 409, 121, 208, 268, 149, 113, 368,
1160 410, 108, 109, 118, 223, 110, 337, 372, -40, 127,
1161 305, 316, 294, 295, 304, 145, 264, 145, 265, 378,
1162 379, 405, 119, 305, 305, 305, 208, 120, 364, 112,
1163 345, 346, 347, 230, 230, 230, 230, 230, 230, 230,
1164 230, 230, 230, 230, 230, 230, 230, 230, 230, 208,
1165 126, 343, 334, 384, 74, 75, 76, 230, 137, 231,
1166 129, 130, 131, 282, 143, 230, 344, 231, 352, 353,
1167 354, 355, 285, 286, 287, 123, 124, 288, 289, -102,
1168 290, 291, 296, 297, 208, 348, 349, 144, 365, 350,
1169 351, 356, 357, 141, 150, 223, 316, 225, 390, 234,
1170 236, 241, 266, 248, 242, 249, 145, 393, 245, 246,
1171 253, 230, 256, 231, 250, 406, 271, 255, 301, 208,
1172 299, 12, 13, 298, 302, -39, 300, 208, 309, 318,
1173 320, 323, 208, 325, 123, -34, 371, 412, 366, 370,
1174 374, 115, 114, 305, 380, 381, -40, 408, 382, 385,
1175 30, 31, 32, 316, 33, 34, 35, 36, 37, 386,
1176 389, 388, 401, 391, 392, 358, 400, 342, 316, 178,
1177 396, 316, 403, 359, 411, 360, 363, 220, 361, 316,
1178 310, 362, 224, 324, 116, 311, 316, 235, 407, 373,
1179 326, 125, 395, 261, 327, 122, 0, 0, 375, 208,
1180 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1181 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1182 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1183 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1184 0, 0, 0, 0, 0, 0, 0, 0, 0, 208,
1185 0, 0, 208, 0, 0, 0, 0, 0, 0, 0,
1186 0, 0, 0, 208, 0, 0, 0, 0, 0, 0,
1187 12, 13, 14, 15, 16, 17, 153, 154, 155, 208,
1188 156, 157, 158, 159, 160, 161, 162, 18, 19, 20,
1189 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
1190 31, 32, 0, 33, 34, 35, 36, 37, 38, 39,
1191 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1192 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1193 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1194 70, 71, 163, 164, 165, 166, 167, 168, 169, 0,
1195 0, 170, 171, 0, 0, 0, 0, 0, 0, 0,
1196 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1197 73, 74, 75, 76, 0, 77, 0, 0, 0, 0,
1198 0, 0, 0, 0, 0, 0, 0, 82, 0, 0,
1199 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1200 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1201 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1202 0, 83, 0, 84, 0, 0, 0, 0, 0, 0,
1203 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1204 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1205 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1206 172, 0, 0, 0, 0, 0, 173, 174, 175, 176,
1207 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1208 0, 177, 178, 179, 12, 13, 14, 15, 16, 17,
1209 153, 154, 155, 0, 156, 157, 158, 159, 160, 161,
1210 162, 18, 19, 20, 21, 22, 23, 24, 25, 26,
1211 27, 28, 29, 30, 31, 32, 0, 33, 34, 35,
1212 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
1213 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1214 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1215 66, 67, 68, 69, 70, 71, 163, 164, 165, 166,
1216 167, 168, 169, 0, 0, 170, 171, 0, 0, 0,
1217 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1218 0, 0, 0, 0, 73, 74, 75, 76, 0, 77,
1219 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1220 0, 82, 0, 0, 0, 0, 0, 0, 0, 0,
1221 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1222 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1223 0, 0, 0, 0, 0, 83, 0, 84, 0, 0,
1224 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1225 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1226 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1227 0, 0, 0, 0, 172, 0, 0, 0, 0, 0,
1228 173, 174, 175, 176, 0, 0, 0, 0, 0, 0,
1229 0, 0, 0, 0, 0, 177, 178, 260, 12, 13,
1230 14, 15, 16, 17, 153, 154, 155, 0, 156, 157,
1231 158, 159, 160, 161, 162, 18, 19, 20, 21, 22,
1232 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
1233 0, 33, 34, 35, 36, 37, 38, 39, 40, 41,
1234 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1235 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1236 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1237 163, 164, 165, 166, 167, 168, 169, 0, 0, 170,
1238 171, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1239 0, 0, 0, 0, 0, 0, 0, 0, 73, 74,
1240 75, 76, 0, 77, 0, 0, 0, 0, 0, 0,
1241 0, 0, 0, 0, 0, 82, 0, 0, 0, 0,
1242 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1243 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1244 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,
1245 0, 84, 0, 0, 0, 0, 0, 0, 0, 0,
1246 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1247 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1248 0, 0, 0, 0, 0, 0, 0, 0, 172, 0,
1249 0, 0, 0, 0, 173, 174, 175, 176, 0, 0,
1250 0, 0, 0, 0, 0, 0, 0, 0, 0, 177,
1251 178, 307, 12, 13, 14, 15, 16, 17, 153, 154,
1252 155, 0, 156, 157, 158, 159, 160, 161, 162, 18,
1253 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1254 29, 30, 31, 32, 0, 33, 34, 35, 36, 37,
1255 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1256 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1257 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1258 68, 69, 70, 71, 163, 164, 165, 166, 167, 168,
1259 169, 0, 0, 170, 171, 0, 0, 0, 0, 0,
1260 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1261 0, 0, 73, 74, 75, 76, 0, 77, 0, 0,
1262 0, 0, 0, 0, 0, 0, 0, 0, 0, 82,
1263 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1264 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1265 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1266 0, 0, 0, 83, 0, 84, 0, 0, 0, 0,
1267 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1268 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1269 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1270 0, 0, 172, 0, 0, 0, 0, 0, 173, 174,
1271 175, 176, 0, 0, 0, 0, 0, 0, 0, 0,
1272 0, 0, 0, 177, 178, 338, 12, 13, 14, 15,
1273 16, 17, 153, 154, 155, 0, 156, 157, 158, 159,
1274 160, 161, 162, 18, 19, 20, 21, 22, 23, 24,
1275 25, 26, 27, 28, 29, 30, 31, 32, 0, 33,
1276 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
1277 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1278 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1279 64, 65, 66, 67, 68, 69, 70, 71, 163, 164,
1280 165, 166, 167, 168, 169, 0, 0, 170, 171, 0,
1281 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1282 0, 0, 0, 0, 0, 0, 73, 74, 75, 76,
1283 0, 77, 0, 0, 0, 0, 0, 0, 0, 0,
1284 0, 0, 0, 82, 0, 0, 0, 0, 0, 0,
1285 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1286 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1287 0, 0, 0, 0, 0, 0, 0, 83, 0, 84,
1288 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1289 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1290 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1291 0, 0, 0, 0, 0, 0, 172, 0, 0, 0,
1292 0, 0, 173, 174, 175, 176, 0, 0, 0, 0,
1293 0, 0, 0, 0, 0, 0, 0, 177, 178, 12,
1294 13, 14, 15, 16, 17, 153, 154, 155, 0, 156,
1295 157, 158, 159, 160, 161, 162, 18, 19, 20, 21,
1296 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
1297 32, 0, 33, 34, 35, 36, 37, 38, 39, 40,
1298 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1299 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1300 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1301 71, 163, 164, 165, 166, 167, 168, 169, 0, 0,
1302 170, 171, 0, 0, 0, 0, 0, 0, 0, 0,
1303 0, 0, 0, 0, 0, 0, 0, 0, 0, 73,
1304 74, 75, 76, 0, 77, 0, 0, 0, 0, 0,
1305 0, 0, 0, 0, 0, 0, 82, 0, 0, 0,
1306 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1307 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1308 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1309 83, 0, 84, 0, 0, 0, 0, 0, 0, 0,
1310 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1311 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1312 0, 0, 0, 0, 0, 0, 0, 0, 0, 172,
1313 0, 0, 0, 0, 0, 173, 174, 175, 176, 12,
1314 13, 14, 15, 16, 17, 0, 0, 0, 0, 0,
1315 177, 124, 0, 0, 0, 0, 18, 19, 20, 21,
1316 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
1317 32, 0, 33, 34, 35, 36, 37, 38, 39, 40,
1318 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1319 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1320 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1321 71, 0, 164, 165, 166, 167, 168, 169, 0, 0,
1322 170, 171, 0, 0, 0, 0, 0, 0, 0, 0,
1323 0, 0, 0, 0, 0, 0, 0, 0, 0, 73,
1324 74, 75, 76, 0, 77, 0, 0, 0, 0, 0,
1325 0, 0, 0, 0, 0, 0, 82, 14, 15, 16,
1326 17, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1327 0, 0, 18, 19, 20, 21, 22, 23, 24, 25,
1328 26, 27, 28, 29, 0, 0, 0, 0, 0, 0,
1329 83, 0, 84, 38, 39, 40, 41, 42, 43, 44,
1330 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1331 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1332 65, 66, 67, 68, 69, 70, 71, 0, 72, 172,
1333 0, 0, 0, 0, 0, 173, 174, 175, 176, 0,
1334 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1335 177, 0, 0, 0, 0, 0, 74, 75, 76, 0,
1336 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1337 0, 0, 0, 14, 15, 16, 17, 0, 0, 0,
1338 0, 0, 0, 0, 0, 0, 0, 0, 18, 19,
1339 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
1340 0, 0, 0, 0, 0, 0, 83, 0, 84, 38,
1341 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1342 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1343 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1344 69, 70, 71, 0, 72, 0, 0, 0, 0, 0,
1345 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1346 0, 0, 0, 0, 0, 0, 0, 0, 239, 0,
1347 0, 0, 74, 75, 76, 0, 0, 0, 0, 0,
1348 0, 0, 0, 0, 0, 0, 0, 0, 0, 14,
1349 15, 16, 17, 0, 0, 0, 0, 0, 0, 0,
1350 0, 0, 0, 0, 18, 19, 20, 21, 22, 23,
1351 24, 25, 26, 27, 28, 29, 0, 0, 0, 0,
1352 0, 0, 83, 0, 84, 38, 39, 40, 41, 42,
1353 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1354 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1355 63, 64, 65, 66, 67, 68, 69, 70, 71, 0,
1356 164, 165, 166, 167, 168, 169, 0, 0, 170, 171,
1357 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1358 0, 0, 0, 0, 319, 0, 0, 0, 74, 75,
1359 76, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1360 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1361 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1362 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1363 0, 0, 0, 0, 0, 0, 0, 0, 83, 0,
1364 84, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1365 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1366 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1367 0, 0, 0, 0, 0, 0, 0, 172, 0, 0,
1368 0, 0, 0, 173, 174, 175, 176, 12, 13, 14,
1369 15, 16, 17, 0, 0, 0, 0, 0, 251, 0,
1370 0, 0, 0, 0, 18, 19, 20, 21, 22, 23,
1371 24, 25, 26, 27, 28, 29, 30, 31, 32, 0,
1372 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
1373 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1374 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1375 63, 64, 65, 66, 67, 68, 69, 70, 71, 0,
1376 164, 165, 166, 167, 168, 169, 0, 0, 170, 171,
1377 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1378 0, 0, 0, 0, 0, 0, 0, 333, 74, 75,
1379 76, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1380 0, 0, 0, 0, 82, 0, 0, 0, 0, 0,
1381 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1382 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1383 0, 0, 0, 0, 0, 0, 0, 0, 83, 0,
1384 84, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1385 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1386 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1387 0, 0, 14, 15, 16, 17, 0, 172, 0, 0,
1388 0, 0, 0, 173, 174, 175, 176, 18, 19, 20,
1389 21, 22, 23, 24, 25, 26, 27, 28, 29, 0,
1390 0, 0, 0, 0, 0, 0, 0, 0, 38, 39,
1391 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1392 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1393 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1394 70, 71, 0, 164, 165, 166, 167, 168, 169, 0,
1395 0, 170, 171, 0, 0, 0, 0, 0, 0, 0,
1396 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1397 0, 74, 75, 76, 0, 0, 0, 0, 0, 0,
1398 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1399 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1400 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1401 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1402 0, 83, 0, 84, 0, 0, 0, 0, 0, 0,
1403 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1404 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1405 0, 0, 0, 0, 0, 14, 15, 16, 17, 0,
1406 172, 0, 0, 229, 0, 0, 173, 174, 175, 176,
1407 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
1408 28, 29, 0, 0, 0, 0, 0, 0, 0, 0,
1409 0, 38, 39, 40, 41, 42, 43, 44, 45, 46,
1410 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1411 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1412 67, 68, 69, 70, 71, 0, 164, 165, 166, 167,
1413 168, 169, 0, 0, 170, 171, 0, 0, 0, 0,
1414 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1415 0, 0, 0, 0, 74, 75, 76, 0, 0, 0,
1416 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1417 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1418 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1419 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1420 0, 0, 0, 0, 83, 0, 84, 0, 0, 0,
1421 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1422 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1423 0, 0, 0, 0, 0, 0, 0, 0, 14, 15,
1424 16, 17, 0, 172, 0, 0, 314, 0, 0, 173,
1425 174, 175, 176, 18, 19, 20, 21, 22, 23, 24,
1426 25, 26, 27, 28, 29, 0, 0, 0, 0, 0,
1427 0, 0, 0, 0, 38, 39, 40, 41, 42, 43,
1428 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1429 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1430 64, 65, 66, 67, 68, 69, 70, 71, 0, 164,
1431 165, 166, 167, 168, 169, 0, 0, 170, 171, 0,
1432 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1433 0, 0, 0, 0, 0, 0, 0, 74, 75, 76,
1434 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1435 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1436 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1437 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1438 0, 0, 0, 0, 0, 0, 0, 83, 0, 84,
1439 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1440 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1441 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1442 0, 14, 15, 16, 17, 0, 172, 0, 0, 367,
1443 0, 0, 173, 174, 175, 176, 18, 19, 20, 21,
1444 22, 23, 24, 25, 26, 27, 28, 29, 0, 0,
1445 0, 0, 0, 0, 0, 0, 0, 38, 39, 40,
1446 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1447 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1448 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1449 71, 0, 164, 165, 166, 167, 168, 169, 0, 0,
1450 170, 171, 0, 0, 0, 0, 0, 0, 0, 0,
1451 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1452 74, 75, 76, 0, 0, 0, 0, 0, 0, 0,
1453 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1454 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1455 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1456 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1457 83, 0, 84, 0, 0, 0, 0, 0, 0, 0,
1458 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1459 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1460 0, 0, 0, 0, 14, 15, 16, 17, 0, 172,
1461 0, 0, 0, 0, 0, 173, 174, 175, 176, 18,
1462 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1463 29, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1464 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1465 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1466 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1467 68, 69, 70, 269, 0, 164, 165, 166, 167, 168,
1468 169, 0, 0, 170, 171, 0, 0, 0, 0, 0,
1469 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1470 0, 0, 0, 74, 75, 76, 0, 0, 0, 0,
1471 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1472 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1473 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1474 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1475 0, 0, 0, 83, 0, 84, 0, 0, 0, 0,
1476 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1477 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1478 0, 0, 0, 0, 0, 12, 13, 14, 15, 16,
1479 17, 0, 172, 0, 0, 0, 0, 0, 173, 174,
1480 175, 176, 18, 19, 20, 21, 22, 23, 24, 25,
1481 26, 27, 28, 29, 30, 31, 32, 0, 33, 34,
1482 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1483 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1484 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1485 65, 66, 67, 68, 69, 70, 71, 0, 72, 0,
1486 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1487 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1488 0, 0, 0, 0, 0, 73, 74, 75, 76, 0,
1489 77, 0, 0, 0, 0, 0, 0, 0, 78, 79,
1490 80, 81, 82, 14, 15, 16, 17, 0, 0, 0,
1491 0, 0, 0, 0, 0, 0, 0, 0, 18, 19,
1492 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
1493 0, 0, 0, 0, 0, 0, 83, 0, 84, 38,
1494 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1495 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1496 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1497 69, 70, 71, 0, 341, 14, 15, 16, 17, 169,
1498 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1499 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
1500 28, 29, 74, 75, 76, 0, 0, 0, 0, 0,
1501 0, 38, 39, 40, 41, 42, 43, 44, 45, 46,
1502 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1503 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1504 67, 68, 69, 70, 71, 0, 72, 14, 15, 16,
1505 17, 0, 83, 0, 84, 0, 0, 0, 0, 0,
1506 0, 0, 18, 19, 20, 21, 22, 23, 24, 25,
1507 26, 27, 28, 29, 74, 75, 76, 0, 0, 0,
1508 0, 0, 0, 38, 39, 40, 41, 42, 43, 44,
1509 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1510 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1511 65, 66, 67, 68, 69, 70, 71, 0, 72, 0,
1512 0, 0, 0, 0, 83, 0, 84, 0, 0, 0,
1513 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1514 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1515 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1516 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1517 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1518 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1519 0, 0, 0, 0, 0, 0, 83, 0, 84
1522 static const yytype_int16 yycheck
[] =
1524 9, 73, 73, 159, 155, 161, 141, 146, 141, 4,
1525 76, 76, 86, 87, 91, 195, 172, 256, 9, 3,
1526 4, 9, 78, 95, 96, 84, 85, 193, 4, 195,
1527 313, 109, 381, 213, 227, 170, 171, 198, 33, 34,
1528 35, 198, 114, 392, 198, 3, 4, 213, 32, 33,
1529 34, 212, 36, 37, 0, 212, 191, 33, 34, 35,
1530 214, 113, 213, 93, 94, 95, 96, 97, 98, 99,
1531 100, 101, 102, 110, 32, 33, 34, 86, 36, 37,
1532 38, 39, 40, 198, 76, 198, 112, 370, 97, 328,
1533 198, 188, 227, 249, 227, 86, 235, 253, 86, 214,
1534 256, 214, 385, 112, 103, 388, 214, 194, 264, 113,
1535 261, 198, 194, 396, 193, 124, 198, 116, 76, 312,
1536 403, 33, 34, 113, 133, 37, 194, 320, 193, 198,
1537 198, 228, 206, 207, 211, 144, 195, 146, 197, 194,
1538 194, 194, 113, 198, 198, 198, 155, 113, 304, 215,
1539 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
1540 295, 296, 297, 298, 299, 300, 301, 302, 303, 178,
1541 194, 268, 328, 366, 104, 105, 106, 312, 76, 312,
1542 33, 34, 35, 213, 76, 320, 283, 320, 292, 293,
1543 294, 295, 203, 204, 205, 214, 215, 199, 200, 194,
1544 82, 83, 88, 89, 213, 288, 289, 215, 305, 290,
1545 291, 296, 297, 195, 76, 224, 313, 76, 374, 113,
1546 76, 214, 194, 193, 213, 193, 235, 378, 214, 214,
1547 193, 366, 193, 366, 214, 391, 193, 212, 90, 248,
1548 209, 3, 4, 208, 92, 193, 210, 256, 76, 196,
1549 195, 78, 261, 75, 214, 194, 196, 408, 195, 213,
1550 193, 333, 333, 198, 76, 194, 193, 12, 196, 213,
1551 32, 33, 34, 370, 36, 37, 38, 39, 40, 196,
1552 196, 213, 196, 214, 194, 298, 383, 265, 385, 215,
1553 213, 388, 213, 299, 214, 300, 303, 127, 301, 396,
1554 224, 302, 134, 244, 77, 224, 403, 144, 392, 321,
1555 248, 88, 379, 178, 248, 86, -1, -1, 328, 328,
1556 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1557 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1558 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1559 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1560 -1, -1, -1, -1, -1, -1, -1, -1, -1, 378,
1561 -1, -1, 381, -1, -1, -1, -1, -1, -1, -1,
1562 -1, -1, -1, 392, -1, -1, -1, -1, -1, -1,
1563 3, 4, 5, 6, 7, 8, 9, 10, 11, 408,
1564 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
1565 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
1566 33, 34, -1, 36, 37, 38, 39, 40, 41, 42,
1567 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1568 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1569 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
1570 73, 74, 75, 76, 77, 78, 79, 80, 81, -1,
1571 -1, 84, 85, -1, -1, -1, -1, -1, -1, -1,
1572 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1573 103, 104, 105, 106, -1, 108, -1, -1, -1, -1,
1574 -1, -1, -1, -1, -1, -1, -1, 120, -1, -1,
1575 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1576 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1577 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1578 -1, 154, -1, 156, -1, -1, -1, -1, -1, -1,
1579 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1580 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1581 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1582 193, -1, -1, -1, -1, -1, 199, 200, 201, 202,
1583 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1584 -1, 214, 215, 216, 3, 4, 5, 6, 7, 8,
1585 9, 10, 11, -1, 13, 14, 15, 16, 17, 18,
1586 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1587 29, 30, 31, 32, 33, 34, -1, 36, 37, 38,
1588 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1589 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1590 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1591 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
1592 79, 80, 81, -1, -1, 84, 85, -1, -1, -1,
1593 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1594 -1, -1, -1, -1, 103, 104, 105, 106, -1, 108,
1595 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1596 -1, 120, -1, -1, -1, -1, -1, -1, -1, -1,
1597 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1598 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1599 -1, -1, -1, -1, -1, 154, -1, 156, -1, -1,
1600 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1601 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1602 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1603 -1, -1, -1, -1, 193, -1, -1, -1, -1, -1,
1604 199, 200, 201, 202, -1, -1, -1, -1, -1, -1,
1605 -1, -1, -1, -1, -1, 214, 215, 216, 3, 4,
1606 5, 6, 7, 8, 9, 10, 11, -1, 13, 14,
1607 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
1608 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1609 -1, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1610 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1611 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1612 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1613 75, 76, 77, 78, 79, 80, 81, -1, -1, 84,
1614 85, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1615 -1, -1, -1, -1, -1, -1, -1, -1, 103, 104,
1616 105, 106, -1, 108, -1, -1, -1, -1, -1, -1,
1617 -1, -1, -1, -1, -1, 120, -1, -1, -1, -1,
1618 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1619 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1620 -1, -1, -1, -1, -1, -1, -1, -1, -1, 154,
1621 -1, 156, -1, -1, -1, -1, -1, -1, -1, -1,
1622 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1623 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1624 -1, -1, -1, -1, -1, -1, -1, -1, 193, -1,
1625 -1, -1, -1, -1, 199, 200, 201, 202, -1, -1,
1626 -1, -1, -1, -1, -1, -1, -1, -1, -1, 214,
1627 215, 216, 3, 4, 5, 6, 7, 8, 9, 10,
1628 11, -1, 13, 14, 15, 16, 17, 18, 19, 20,
1629 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
1630 31, 32, 33, 34, -1, 36, 37, 38, 39, 40,
1631 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1632 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1633 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1634 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
1635 81, -1, -1, 84, 85, -1, -1, -1, -1, -1,
1636 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1637 -1, -1, 103, 104, 105, 106, -1, 108, -1, -1,
1638 -1, -1, -1, -1, -1, -1, -1, -1, -1, 120,
1639 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1640 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1641 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1642 -1, -1, -1, 154, -1, 156, -1, -1, -1, -1,
1643 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1644 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1645 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1646 -1, -1, 193, -1, -1, -1, -1, -1, 199, 200,
1647 201, 202, -1, -1, -1, -1, -1, -1, -1, -1,
1648 -1, -1, -1, 214, 215, 216, 3, 4, 5, 6,
1649 7, 8, 9, 10, 11, -1, 13, 14, 15, 16,
1650 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
1651 27, 28, 29, 30, 31, 32, 33, 34, -1, 36,
1652 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
1653 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1654 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1655 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1656 77, 78, 79, 80, 81, -1, -1, 84, 85, -1,
1657 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1658 -1, -1, -1, -1, -1, -1, 103, 104, 105, 106,
1659 -1, 108, -1, -1, -1, -1, -1, -1, -1, -1,
1660 -1, -1, -1, 120, -1, -1, -1, -1, -1, -1,
1661 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1662 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1663 -1, -1, -1, -1, -1, -1, -1, 154, -1, 156,
1664 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1665 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1666 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1667 -1, -1, -1, -1, -1, -1, 193, -1, -1, -1,
1668 -1, -1, 199, 200, 201, 202, -1, -1, -1, -1,
1669 -1, -1, -1, -1, -1, -1, -1, 214, 215, 3,
1670 4, 5, 6, 7, 8, 9, 10, 11, -1, 13,
1671 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
1672 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
1673 34, -1, 36, 37, 38, 39, 40, 41, 42, 43,
1674 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1675 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1676 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1677 74, 75, 76, 77, 78, 79, 80, 81, -1, -1,
1678 84, 85, -1, -1, -1, -1, -1, -1, -1, -1,
1679 -1, -1, -1, -1, -1, -1, -1, -1, -1, 103,
1680 104, 105, 106, -1, 108, -1, -1, -1, -1, -1,
1681 -1, -1, -1, -1, -1, -1, 120, -1, -1, -1,
1682 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1683 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1684 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1685 154, -1, 156, -1, -1, -1, -1, -1, -1, -1,
1686 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1687 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1688 -1, -1, -1, -1, -1, -1, -1, -1, -1, 193,
1689 -1, -1, -1, -1, -1, 199, 200, 201, 202, 3,
1690 4, 5, 6, 7, 8, -1, -1, -1, -1, -1,
1691 214, 215, -1, -1, -1, -1, 20, 21, 22, 23,
1692 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
1693 34, -1, 36, 37, 38, 39, 40, 41, 42, 43,
1694 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1695 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1696 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1697 74, -1, 76, 77, 78, 79, 80, 81, -1, -1,
1698 84, 85, -1, -1, -1, -1, -1, -1, -1, -1,
1699 -1, -1, -1, -1, -1, -1, -1, -1, -1, 103,
1700 104, 105, 106, -1, 108, -1, -1, -1, -1, -1,
1701 -1, -1, -1, -1, -1, -1, 120, 5, 6, 7,
1702 8, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1703 -1, -1, 20, 21, 22, 23, 24, 25, 26, 27,
1704 28, 29, 30, 31, -1, -1, -1, -1, -1, -1,
1705 154, -1, 156, 41, 42, 43, 44, 45, 46, 47,
1706 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1707 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1708 68, 69, 70, 71, 72, 73, 74, -1, 76, 193,
1709 -1, -1, -1, -1, -1, 199, 200, 201, 202, -1,
1710 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1711 214, -1, -1, -1, -1, -1, 104, 105, 106, -1,
1712 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1713 -1, -1, -1, 5, 6, 7, 8, -1, -1, -1,
1714 -1, -1, -1, -1, -1, -1, -1, -1, 20, 21,
1715 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
1716 -1, -1, -1, -1, -1, -1, 154, -1, 156, 41,
1717 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1718 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1719 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1720 72, 73, 74, -1, 76, -1, -1, -1, -1, -1,
1721 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1722 -1, -1, -1, -1, -1, -1, -1, -1, 216, -1,
1723 -1, -1, 104, 105, 106, -1, -1, -1, -1, -1,
1724 -1, -1, -1, -1, -1, -1, -1, -1, -1, 5,
1725 6, 7, 8, -1, -1, -1, -1, -1, -1, -1,
1726 -1, -1, -1, -1, 20, 21, 22, 23, 24, 25,
1727 26, 27, 28, 29, 30, 31, -1, -1, -1, -1,
1728 -1, -1, 154, -1, 156, 41, 42, 43, 44, 45,
1729 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1730 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1731 66, 67, 68, 69, 70, 71, 72, 73, 74, -1,
1732 76, 77, 78, 79, 80, 81, -1, -1, 84, 85,
1733 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1734 -1, -1, -1, -1, 216, -1, -1, -1, 104, 105,
1735 106, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1736 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1737 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1738 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1739 -1, -1, -1, -1, -1, -1, -1, -1, 154, -1,
1740 156, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1741 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1742 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1743 -1, -1, -1, -1, -1, -1, -1, 193, -1, -1,
1744 -1, -1, -1, 199, 200, 201, 202, 3, 4, 5,
1745 6, 7, 8, -1, -1, -1, -1, -1, 214, -1,
1746 -1, -1, -1, -1, 20, 21, 22, 23, 24, 25,
1747 26, 27, 28, 29, 30, 31, 32, 33, 34, -1,
1748 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
1749 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1750 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1751 66, 67, 68, 69, 70, 71, 72, 73, 74, -1,
1752 76, 77, 78, 79, 80, 81, -1, -1, 84, 85,
1753 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1754 -1, -1, -1, -1, -1, -1, -1, 103, 104, 105,
1755 106, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1756 -1, -1, -1, -1, 120, -1, -1, -1, -1, -1,
1757 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1758 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1759 -1, -1, -1, -1, -1, -1, -1, -1, 154, -1,
1760 156, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1761 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1762 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1763 -1, -1, 5, 6, 7, 8, -1, 193, -1, -1,
1764 -1, -1, -1, 199, 200, 201, 202, 20, 21, 22,
1765 23, 24, 25, 26, 27, 28, 29, 30, 31, -1,
1766 -1, -1, -1, -1, -1, -1, -1, -1, 41, 42,
1767 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1768 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1769 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
1770 73, 74, -1, 76, 77, 78, 79, 80, 81, -1,
1771 -1, 84, 85, -1, -1, -1, -1, -1, -1, -1,
1772 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1773 -1, 104, 105, 106, -1, -1, -1, -1, -1, -1,
1774 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1775 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1776 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1777 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1778 -1, 154, -1, 156, -1, -1, -1, -1, -1, -1,
1779 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1780 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1781 -1, -1, -1, -1, -1, 5, 6, 7, 8, -1,
1782 193, -1, -1, 196, -1, -1, 199, 200, 201, 202,
1783 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
1784 30, 31, -1, -1, -1, -1, -1, -1, -1, -1,
1785 -1, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1786 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1787 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1788 70, 71, 72, 73, 74, -1, 76, 77, 78, 79,
1789 80, 81, -1, -1, 84, 85, -1, -1, -1, -1,
1790 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1791 -1, -1, -1, -1, 104, 105, 106, -1, -1, -1,
1792 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1793 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1794 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1795 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1796 -1, -1, -1, -1, 154, -1, 156, -1, -1, -1,
1797 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1798 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1799 -1, -1, -1, -1, -1, -1, -1, -1, 5, 6,
1800 7, 8, -1, 193, -1, -1, 196, -1, -1, 199,
1801 200, 201, 202, 20, 21, 22, 23, 24, 25, 26,
1802 27, 28, 29, 30, 31, -1, -1, -1, -1, -1,
1803 -1, -1, -1, -1, 41, 42, 43, 44, 45, 46,
1804 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1805 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1806 67, 68, 69, 70, 71, 72, 73, 74, -1, 76,
1807 77, 78, 79, 80, 81, -1, -1, 84, 85, -1,
1808 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1809 -1, -1, -1, -1, -1, -1, -1, 104, 105, 106,
1810 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1811 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1812 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1813 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1814 -1, -1, -1, -1, -1, -1, -1, 154, -1, 156,
1815 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1816 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1817 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1818 -1, 5, 6, 7, 8, -1, 193, -1, -1, 196,
1819 -1, -1, 199, 200, 201, 202, 20, 21, 22, 23,
1820 24, 25, 26, 27, 28, 29, 30, 31, -1, -1,
1821 -1, -1, -1, -1, -1, -1, -1, 41, 42, 43,
1822 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1823 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1824 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1825 74, -1, 76, 77, 78, 79, 80, 81, -1, -1,
1826 84, 85, -1, -1, -1, -1, -1, -1, -1, -1,
1827 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1828 104, 105, 106, -1, -1, -1, -1, -1, -1, -1,
1829 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1830 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1831 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1832 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1833 154, -1, 156, -1, -1, -1, -1, -1, -1, -1,
1834 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1835 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1836 -1, -1, -1, -1, 5, 6, 7, 8, -1, 193,
1837 -1, -1, -1, -1, -1, 199, 200, 201, 202, 20,
1838 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
1839 31, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1840 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1841 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1842 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1843 71, 72, 73, 74, -1, 76, 77, 78, 79, 80,
1844 81, -1, -1, 84, 85, -1, -1, -1, -1, -1,
1845 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1846 -1, -1, -1, 104, 105, 106, -1, -1, -1, -1,
1847 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1848 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1849 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1850 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1851 -1, -1, -1, 154, -1, 156, -1, -1, -1, -1,
1852 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1853 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1854 -1, -1, -1, -1, -1, 3, 4, 5, 6, 7,
1855 8, -1, 193, -1, -1, -1, -1, -1, 199, 200,
1856 201, 202, 20, 21, 22, 23, 24, 25, 26, 27,
1857 28, 29, 30, 31, 32, 33, 34, -1, 36, 37,
1858 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1859 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1860 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1861 68, 69, 70, 71, 72, 73, 74, -1, 76, -1,
1862 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1863 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1864 -1, -1, -1, -1, -1, 103, 104, 105, 106, -1,
1865 108, -1, -1, -1, -1, -1, -1, -1, 116, 117,
1866 118, 119, 120, 5, 6, 7, 8, -1, -1, -1,
1867 -1, -1, -1, -1, -1, -1, -1, -1, 20, 21,
1868 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
1869 -1, -1, -1, -1, -1, -1, 154, -1, 156, 41,
1870 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1871 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1872 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1873 72, 73, 74, -1, 76, 5, 6, 7, 8, 81,
1874 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1875 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
1876 30, 31, 104, 105, 106, -1, -1, -1, -1, -1,
1877 -1, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1878 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1879 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1880 70, 71, 72, 73, 74, -1, 76, 5, 6, 7,
1881 8, -1, 154, -1, 156, -1, -1, -1, -1, -1,
1882 -1, -1, 20, 21, 22, 23, 24, 25, 26, 27,
1883 28, 29, 30, 31, 104, 105, 106, -1, -1, -1,
1884 -1, -1, -1, 41, 42, 43, 44, 45, 46, 47,
1885 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1886 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1887 68, 69, 70, 71, 72, 73, 74, -1, 76, -1,
1888 -1, -1, -1, -1, 154, -1, 156, -1, -1, -1,
1889 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1890 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1891 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1892 -1, -1, -1, -1, -1, -1, -1, -1, -1, -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, 154, -1, 156
1898 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1899 symbol of state STATE-NUM. */
1900 static const yytype_uint16 yystos
[] =
1902 0, 109, 218, 220, 78, 0, 222, 113, 110, 219,
1903 223, 76, 3, 4, 5, 6, 7, 8, 20, 21,
1904 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
1905 32, 33, 34, 36, 37, 38, 39, 40, 41, 42,
1906 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1907 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1908 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
1909 73, 74, 76, 103, 104, 105, 106, 108, 116, 117,
1910 118, 119, 120, 154, 156, 221, 224, 254, 255, 256,
1911 257, 258, 263, 264, 265, 266, 269, 271, 272, 273,
1912 274, 275, 276, 277, 278, 302, 303, 112, 33, 34,
1913 37, 76, 215, 76, 269, 272, 277, 113, 113, 113,
1914 113, 193, 302, 214, 215, 289, 194, 198, 4, 33,
1915 34, 35, 260, 261, 270, 198, 214, 76, 272, 272,
1916 273, 195, 274, 76, 215, 273, 279, 280, 272, 274,
1917 76, 267, 268, 9, 10, 11, 13, 14, 15, 16,
1918 17, 18, 19, 75, 76, 77, 78, 79, 80, 81,
1919 84, 85, 193, 199, 200, 201, 202, 214, 215, 216,
1920 225, 226, 227, 229, 230, 231, 232, 233, 234, 235,
1921 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
1922 246, 247, 248, 249, 250, 252, 254, 255, 273, 284,
1923 285, 286, 287, 290, 291, 292, 295, 296, 297, 301,
1924 260, 259, 262, 273, 261, 76, 193, 195, 213, 196,
1925 236, 249, 253, 273, 113, 279, 76, 281, 282, 216,
1926 280, 214, 213, 194, 198, 214, 214, 285, 193, 193,
1927 214, 214, 252, 193, 252, 212, 193, 236, 236, 252,
1928 216, 290, 84, 85, 195, 197, 194, 194, 198, 74,
1929 250, 193, 93, 94, 95, 96, 97, 98, 99, 100,
1930 101, 102, 213, 251, 236, 203, 204, 205, 199, 200,
1931 82, 83, 86, 87, 206, 207, 88, 89, 208, 209,
1932 210, 90, 92, 91, 211, 198, 214, 216, 285, 76,
1933 259, 262, 195, 213, 196, 253, 250, 283, 196, 216,
1934 195, 198, 214, 78, 268, 75, 284, 291, 298, 252,
1935 214, 252, 212, 103, 252, 265, 294, 194, 216, 228,
1936 252, 76, 231, 250, 250, 236, 236, 236, 238, 238,
1937 239, 239, 240, 240, 240, 240, 241, 241, 242, 243,
1938 244, 245, 246, 247, 252, 250, 195, 196, 253, 283,
1939 213, 196, 253, 282, 193, 294, 299, 300, 194, 194,
1940 76, 194, 196, 212, 253, 213, 196, 283, 213, 196,
1941 252, 214, 194, 285, 293, 287, 213, 286, 288, 289,
1942 250, 196, 283, 213, 283, 194, 252, 288, 12, 283,
1946 #define yyerrok (yyerrstatus = 0)
1947 #define yyclearin (yychar = YYEMPTY)
1948 #define YYEMPTY (-2)
1951 #define YYACCEPT goto yyacceptlab
1952 #define YYABORT goto yyabortlab
1953 #define YYERROR goto yyerrorlab
1956 /* Like YYERROR except do call yyerror. This remains here temporarily
1957 to ease the transition to the new meaning of YYERROR, for GCC.
1958 Once GCC version 2 has supplanted version 1, this can go. However,
1959 YYFAIL appears to be in use. Nevertheless, it is formally deprecated
1960 in Bison 2.4.2's NEWS entry, where a plan to phase it out is
1963 #define YYFAIL goto yyerrlab
1965 /* This is here to suppress warnings from the GCC cpp's
1966 -Wunused-macros. Normally we don't worry about that warning, but
1967 some users do, and we want to make it easy for users to remove
1968 YYFAIL uses, which will produce warnings from Bison 2.5. */
1971 #define YYRECOVERING() (!!yyerrstatus)
1973 #define YYBACKUP(Token, Value) \
1975 if (yychar == YYEMPTY && yylen == 1) \
1979 yytoken = YYTRANSLATE (yychar); \
1985 yyerror (&yylloc, state, YY_("syntax error: cannot back up")); \
1992 #define YYERRCODE 256
1995 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
1996 If N is 0, then set CURRENT to the empty location which ends
1997 the previous symbol: RHS[0] (always defined). */
1999 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
2000 #ifndef YYLLOC_DEFAULT
2001 # define YYLLOC_DEFAULT(Current, Rhs, N) \
2005 (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
2006 (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
2007 (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
2008 (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
2012 (Current).first_line = (Current).last_line = \
2013 YYRHSLOC (Rhs, 0).last_line; \
2014 (Current).first_column = (Current).last_column = \
2015 YYRHSLOC (Rhs, 0).last_column; \
2021 /* YY_LOCATION_PRINT -- Print the location on the stream.
2022 This macro was not mandated originally: define only if we know
2023 we won't break user code: when these are the locations we know. */
2025 #ifndef YY_LOCATION_PRINT
2026 # if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
2027 # define YY_LOCATION_PRINT(File, Loc) \
2028 fprintf (File, "%d.%d-%d.%d", \
2029 (Loc).first_line, (Loc).first_column, \
2030 (Loc).last_line, (Loc).last_column)
2032 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2037 /* YYLEX -- calling `yylex' with the right arguments. */
2040 # define YYLEX yylex (&yylval, &yylloc, YYLEX_PARAM)
2042 # define YYLEX yylex (&yylval, &yylloc, scanner)
2045 /* Enable debugging if requested. */
2049 # include <stdio.h> /* INFRINGES ON USER NAME SPACE */
2050 # define YYFPRINTF fprintf
2053 # define YYDPRINTF(Args) \
2059 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
2063 YYFPRINTF (stderr, "%s ", Title); \
2064 yy_symbol_print (stderr, \
2065 Type, Value, Location, state); \
2066 YYFPRINTF (stderr, "\n"); \
2071 /*--------------------------------.
2072 | Print this symbol on YYOUTPUT. |
2073 `--------------------------------*/
2076 #if (defined __STDC__ || defined __C99__FUNC__ \
2077 || defined __cplusplus || defined _MSC_VER)
2079 yy_symbol_value_print (FILE *yyoutput
, int yytype
, YYSTYPE
const * const yyvaluep
, YYLTYPE
const * const yylocationp
, struct _mesa_glsl_parse_state
*state
)
2082 yy_symbol_value_print (yyoutput
, yytype
, yyvaluep
, yylocationp
, state
)
2085 YYSTYPE
const * const yyvaluep
;
2086 YYLTYPE
const * const yylocationp
;
2087 struct _mesa_glsl_parse_state
*state
;
2092 YYUSE (yylocationp
);
2095 if (yytype
< YYNTOKENS
)
2096 YYPRINT (yyoutput
, yytoknum
[yytype
], *yyvaluep
);
2108 /*--------------------------------.
2109 | Print this symbol on YYOUTPUT. |
2110 `--------------------------------*/
2112 #if (defined __STDC__ || defined __C99__FUNC__ \
2113 || defined __cplusplus || defined _MSC_VER)
2115 yy_symbol_print (FILE *yyoutput
, int yytype
, YYSTYPE
const * const yyvaluep
, YYLTYPE
const * const yylocationp
, struct _mesa_glsl_parse_state
*state
)
2118 yy_symbol_print (yyoutput
, yytype
, yyvaluep
, yylocationp
, state
)
2121 YYSTYPE
const * const yyvaluep
;
2122 YYLTYPE
const * const yylocationp
;
2123 struct _mesa_glsl_parse_state
*state
;
2126 if (yytype
< YYNTOKENS
)
2127 YYFPRINTF (yyoutput
, "token %s (", yytname
[yytype
]);
2129 YYFPRINTF (yyoutput
, "nterm %s (", yytname
[yytype
]);
2131 YY_LOCATION_PRINT (yyoutput
, *yylocationp
);
2132 YYFPRINTF (yyoutput
, ": ");
2133 yy_symbol_value_print (yyoutput
, yytype
, yyvaluep
, yylocationp
, state
);
2134 YYFPRINTF (yyoutput
, ")");
2137 /*------------------------------------------------------------------.
2138 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
2140 `------------------------------------------------------------------*/
2142 #if (defined __STDC__ || defined __C99__FUNC__ \
2143 || defined __cplusplus || defined _MSC_VER)
2145 yy_stack_print (yytype_int16
*yybottom
, yytype_int16
*yytop
)
2148 yy_stack_print (yybottom
, yytop
)
2149 yytype_int16
*yybottom
;
2150 yytype_int16
*yytop
;
2153 YYFPRINTF (stderr
, "Stack now");
2154 for (; yybottom
<= yytop
; yybottom
++)
2156 int yybot
= *yybottom
;
2157 YYFPRINTF (stderr
, " %d", yybot
);
2159 YYFPRINTF (stderr
, "\n");
2162 # define YY_STACK_PRINT(Bottom, Top) \
2165 yy_stack_print ((Bottom), (Top)); \
2169 /*------------------------------------------------.
2170 | Report that the YYRULE is going to be reduced. |
2171 `------------------------------------------------*/
2173 #if (defined __STDC__ || defined __C99__FUNC__ \
2174 || defined __cplusplus || defined _MSC_VER)
2176 yy_reduce_print (YYSTYPE
*yyvsp
, YYLTYPE
*yylsp
, int yyrule
, struct _mesa_glsl_parse_state
*state
)
2179 yy_reduce_print (yyvsp
, yylsp
, yyrule
, state
)
2183 struct _mesa_glsl_parse_state
*state
;
2186 int yynrhs
= yyr2
[yyrule
];
2188 unsigned long int yylno
= yyrline
[yyrule
];
2189 YYFPRINTF (stderr
, "Reducing stack by rule %d (line %lu):\n",
2191 /* The symbols being reduced. */
2192 for (yyi
= 0; yyi
< yynrhs
; yyi
++)
2194 YYFPRINTF (stderr
, " $%d = ", yyi
+ 1);
2195 yy_symbol_print (stderr
, yyrhs
[yyprhs
[yyrule
] + yyi
],
2196 &(yyvsp
[(yyi
+ 1) - (yynrhs
)])
2197 , &(yylsp
[(yyi
+ 1) - (yynrhs
)]) , state
);
2198 YYFPRINTF (stderr
, "\n");
2202 # define YY_REDUCE_PRINT(Rule) \
2205 yy_reduce_print (yyvsp, yylsp, Rule, state); \
2208 /* Nonzero means print parse trace. It is left uninitialized so that
2209 multiple parsers can coexist. */
2211 #else /* !YYDEBUG */
2212 # define YYDPRINTF(Args)
2213 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
2214 # define YY_STACK_PRINT(Bottom, Top)
2215 # define YY_REDUCE_PRINT(Rule)
2216 #endif /* !YYDEBUG */
2219 /* YYINITDEPTH -- initial size of the parser's stacks. */
2221 # define YYINITDEPTH 200
2224 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
2225 if the built-in stack extension method is used).
2227 Do not make this value too large; the results are undefined if
2228 YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
2229 evaluated with infinite-precision integer arithmetic. */
2232 # define YYMAXDEPTH 10000
2240 # if defined __GLIBC__ && defined _STRING_H
2241 # define yystrlen strlen
2243 /* Return the length of YYSTR. */
2244 #if (defined __STDC__ || defined __C99__FUNC__ \
2245 || defined __cplusplus || defined _MSC_VER)
2247 yystrlen (const char *yystr
)
2255 for (yylen
= 0; yystr
[yylen
]; yylen
++)
2263 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
2264 # define yystpcpy stpcpy
2266 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
2268 #if (defined __STDC__ || defined __C99__FUNC__ \
2269 || defined __cplusplus || defined _MSC_VER)
2271 yystpcpy (char *yydest
, const char *yysrc
)
2274 yystpcpy (yydest
, yysrc
)
2280 const char *yys
= yysrc
;
2282 while ((*yyd
++ = *yys
++) != '\0')
2291 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
2292 quotes and backslashes, so that it's suitable for yyerror. The
2293 heuristic is that double-quoting is unnecessary unless the string
2294 contains an apostrophe, a comma, or backslash (other than
2295 backslash-backslash). YYSTR is taken from yytname. If YYRES is
2296 null, do not copy; instead, return the length of what the result
2299 yytnamerr (char *yyres
, const char *yystr
)
2304 char const *yyp
= yystr
;
2311 goto do_not_strip_quotes
;
2315 goto do_not_strip_quotes
;
2328 do_not_strip_quotes
: ;
2332 return yystrlen (yystr
);
2334 return yystpcpy (yyres
, yystr
) - yyres
;
2338 /* Copy into YYRESULT an error message about the unexpected token
2339 YYCHAR while in state YYSTATE. Return the number of bytes copied,
2340 including the terminating null byte. If YYRESULT is null, do not
2341 copy anything; just return the number of bytes that would be
2342 copied. As a special case, return 0 if an ordinary "syntax error"
2343 message will do. Return YYSIZE_MAXIMUM if overflow occurs during
2344 size calculation. */
2346 yysyntax_error (char *yyresult
, int yystate
, int yychar
)
2348 int yyn
= yypact
[yystate
];
2350 if (! (YYPACT_NINF
< yyn
&& yyn
<= YYLAST
))
2354 int yytype
= YYTRANSLATE (yychar
);
2355 YYSIZE_T yysize0
= yytnamerr (0, yytname
[yytype
]);
2356 YYSIZE_T yysize
= yysize0
;
2358 int yysize_overflow
= 0;
2359 enum { YYERROR_VERBOSE_ARGS_MAXIMUM
= 5 };
2360 char const *yyarg
[YYERROR_VERBOSE_ARGS_MAXIMUM
];
2364 /* This is so xgettext sees the translatable formats that are
2365 constructed on the fly. */
2366 YY_("syntax error, unexpected %s");
2367 YY_("syntax error, unexpected %s, expecting %s");
2368 YY_("syntax error, unexpected %s, expecting %s or %s");
2369 YY_("syntax error, unexpected %s, expecting %s or %s or %s");
2370 YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
2374 static char const yyunexpected
[] = "syntax error, unexpected %s";
2375 static char const yyexpecting
[] = ", expecting %s";
2376 static char const yyor
[] = " or %s";
2377 char yyformat
[sizeof yyunexpected
2378 + sizeof yyexpecting
- 1
2379 + ((YYERROR_VERBOSE_ARGS_MAXIMUM
- 2)
2380 * (sizeof yyor
- 1))];
2381 char const *yyprefix
= yyexpecting
;
2383 /* Start YYX at -YYN if negative to avoid negative indexes in
2385 int yyxbegin
= yyn
< 0 ? -yyn
: 0;
2387 /* Stay within bounds of both yycheck and yytname. */
2388 int yychecklim
= YYLAST
- yyn
+ 1;
2389 int yyxend
= yychecklim
< YYNTOKENS
? yychecklim
: YYNTOKENS
;
2392 yyarg
[0] = yytname
[yytype
];
2393 yyfmt
= yystpcpy (yyformat
, yyunexpected
);
2395 for (yyx
= yyxbegin
; yyx
< yyxend
; ++yyx
)
2396 if (yycheck
[yyx
+ yyn
] == yyx
&& yyx
!= YYTERROR
)
2398 if (yycount
== YYERROR_VERBOSE_ARGS_MAXIMUM
)
2402 yyformat
[sizeof yyunexpected
- 1] = '\0';
2405 yyarg
[yycount
++] = yytname
[yyx
];
2406 yysize1
= yysize
+ yytnamerr (0, yytname
[yyx
]);
2407 yysize_overflow
|= (yysize1
< yysize
);
2409 yyfmt
= yystpcpy (yyfmt
, yyprefix
);
2413 yyf
= YY_(yyformat
);
2414 yysize1
= yysize
+ yystrlen (yyf
);
2415 yysize_overflow
|= (yysize1
< yysize
);
2418 if (yysize_overflow
)
2419 return YYSIZE_MAXIMUM
;
2423 /* Avoid sprintf, as that infringes on the user's name space.
2424 Don't have undefined behavior even if the translation
2425 produced a string with the wrong number of "%s"s. */
2426 char *yyp
= yyresult
;
2428 while ((*yyp
= *yyf
) != '\0')
2430 if (*yyp
== '%' && yyf
[1] == 's' && yyi
< yycount
)
2432 yyp
+= yytnamerr (yyp
, yyarg
[yyi
++]);
2445 #endif /* YYERROR_VERBOSE */
2448 /*-----------------------------------------------.
2449 | Release the memory associated to this symbol. |
2450 `-----------------------------------------------*/
2453 #if (defined __STDC__ || defined __C99__FUNC__ \
2454 || defined __cplusplus || defined _MSC_VER)
2456 yydestruct (const char *yymsg
, int yytype
, YYSTYPE
*yyvaluep
, YYLTYPE
*yylocationp
, struct _mesa_glsl_parse_state
*state
)
2459 yydestruct (yymsg
, yytype
, yyvaluep
, yylocationp
, state
)
2463 YYLTYPE
*yylocationp
;
2464 struct _mesa_glsl_parse_state
*state
;
2468 YYUSE (yylocationp
);
2473 YY_SYMBOL_PRINT (yymsg
, yytype
, yyvaluep
, yylocationp
);
2483 /* Prevent warnings from -Wmissing-prototypes. */
2484 #ifdef YYPARSE_PARAM
2485 #if defined __STDC__ || defined __cplusplus
2486 int yyparse (void *YYPARSE_PARAM
);
2490 #else /* ! YYPARSE_PARAM */
2491 #if defined __STDC__ || defined __cplusplus
2492 int yyparse (struct _mesa_glsl_parse_state
*state
);
2496 #endif /* ! YYPARSE_PARAM */
2502 /*-------------------------.
2503 | yyparse or yypush_parse. |
2504 `-------------------------*/
2506 #ifdef YYPARSE_PARAM
2507 #if (defined __STDC__ || defined __C99__FUNC__ \
2508 || defined __cplusplus || defined _MSC_VER)
2510 yyparse (void *YYPARSE_PARAM
)
2513 yyparse (YYPARSE_PARAM
)
2514 void *YYPARSE_PARAM
;
2516 #else /* ! YYPARSE_PARAM */
2517 #if (defined __STDC__ || defined __C99__FUNC__ \
2518 || defined __cplusplus || defined _MSC_VER)
2520 yyparse (struct _mesa_glsl_parse_state
*state
)
2524 struct _mesa_glsl_parse_state
*state
;
2528 /* The lookahead symbol. */
2531 /* The semantic value of the lookahead symbol. */
2534 /* Location data for the lookahead symbol. */
2537 /* Number of syntax errors so far. */
2541 /* Number of tokens to shift before error messages enabled. */
2544 /* The stacks and their tools:
2545 `yyss': related to states.
2546 `yyvs': related to semantic values.
2547 `yyls': related to locations.
2549 Refer to the stacks thru separate pointers, to allow yyoverflow
2550 to reallocate them elsewhere. */
2552 /* The state stack. */
2553 yytype_int16 yyssa
[YYINITDEPTH
];
2555 yytype_int16
*yyssp
;
2557 /* The semantic value stack. */
2558 YYSTYPE yyvsa
[YYINITDEPTH
];
2562 /* The location stack. */
2563 YYLTYPE yylsa
[YYINITDEPTH
];
2567 /* The locations where the error started and ended. */
2568 YYLTYPE yyerror_range
[3];
2570 YYSIZE_T yystacksize
;
2574 /* Lookahead token as an internal (translated) token number. */
2576 /* The variables used to return semantic value and location from the
2582 /* Buffer for error messages, and its allocated size. */
2584 char *yymsg
= yymsgbuf
;
2585 YYSIZE_T yymsg_alloc
= sizeof yymsgbuf
;
2588 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N), yylsp -= (N))
2590 /* The number of symbols on the RHS of the reduced rule.
2591 Keep to zero when no symbol should be popped. */
2598 yystacksize
= YYINITDEPTH
;
2600 YYDPRINTF ((stderr
, "Starting parse\n"));
2605 yychar
= YYEMPTY
; /* Cause a token to be read. */
2607 /* Initialize stack pointers.
2608 Waste one element of value and location stack
2609 so that they stay on the same level as the state stack.
2610 The wasted elements are never initialized. */
2615 #if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
2616 /* Initialize the default location before parsing starts. */
2617 yylloc
.first_line
= yylloc
.last_line
= 1;
2618 yylloc
.first_column
= yylloc
.last_column
= 1;
2621 /* User initialization code. */
2623 /* Line 1251 of yacc.c */
2624 #line 41 "glsl_parser.ypp"
2626 yylloc
.first_line
= 1;
2627 yylloc
.first_column
= 1;
2628 yylloc
.last_line
= 1;
2629 yylloc
.last_column
= 1;
2633 /* Line 1251 of yacc.c */
2634 #line 2635 "glsl_parser.cpp"
2639 /*------------------------------------------------------------.
2640 | yynewstate -- Push a new state, which is found in yystate. |
2641 `------------------------------------------------------------*/
2643 /* In all cases, when you get here, the value and location stacks
2644 have just been pushed. So pushing a state here evens the stacks. */
2650 if (yyss
+ yystacksize
- 1 <= yyssp
)
2652 /* Get the current used size of the three stacks, in elements. */
2653 YYSIZE_T yysize
= yyssp
- yyss
+ 1;
2657 /* Give user a chance to reallocate the stack. Use copies of
2658 these so that the &'s don't force the real ones into
2660 YYSTYPE
*yyvs1
= yyvs
;
2661 yytype_int16
*yyss1
= yyss
;
2662 YYLTYPE
*yyls1
= yyls
;
2664 /* Each stack pointer address is followed by the size of the
2665 data in use in that stack, in bytes. This used to be a
2666 conditional around just the two extra args, but that might
2667 be undefined if yyoverflow is a macro. */
2668 yyoverflow (YY_("memory exhausted"),
2669 &yyss1
, yysize
* sizeof (*yyssp
),
2670 &yyvs1
, yysize
* sizeof (*yyvsp
),
2671 &yyls1
, yysize
* sizeof (*yylsp
),
2678 #else /* no yyoverflow */
2679 # ifndef YYSTACK_RELOCATE
2680 goto yyexhaustedlab
;
2682 /* Extend the stack our own way. */
2683 if (YYMAXDEPTH
<= yystacksize
)
2684 goto yyexhaustedlab
;
2686 if (YYMAXDEPTH
< yystacksize
)
2687 yystacksize
= YYMAXDEPTH
;
2690 yytype_int16
*yyss1
= yyss
;
2691 union yyalloc
*yyptr
=
2692 (union yyalloc
*) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize
));
2694 goto yyexhaustedlab
;
2695 YYSTACK_RELOCATE (yyss_alloc
, yyss
);
2696 YYSTACK_RELOCATE (yyvs_alloc
, yyvs
);
2697 YYSTACK_RELOCATE (yyls_alloc
, yyls
);
2698 # undef YYSTACK_RELOCATE
2700 YYSTACK_FREE (yyss1
);
2703 #endif /* no yyoverflow */
2705 yyssp
= yyss
+ yysize
- 1;
2706 yyvsp
= yyvs
+ yysize
- 1;
2707 yylsp
= yyls
+ yysize
- 1;
2709 YYDPRINTF ((stderr
, "Stack size increased to %lu\n",
2710 (unsigned long int) yystacksize
));
2712 if (yyss
+ yystacksize
- 1 <= yyssp
)
2716 YYDPRINTF ((stderr
, "Entering state %d\n", yystate
));
2718 if (yystate
== YYFINAL
)
2728 /* Do appropriate processing given the current state. Read a
2729 lookahead token if we need one and don't already have one. */
2731 /* First try to decide what to do without reference to lookahead token. */
2732 yyn
= yypact
[yystate
];
2733 if (yyn
== YYPACT_NINF
)
2736 /* Not known => get a lookahead token if don't already have one. */
2738 /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
2739 if (yychar
== YYEMPTY
)
2741 YYDPRINTF ((stderr
, "Reading a token: "));
2745 if (yychar
<= YYEOF
)
2747 yychar
= yytoken
= YYEOF
;
2748 YYDPRINTF ((stderr
, "Now at end of input.\n"));
2752 yytoken
= YYTRANSLATE (yychar
);
2753 YY_SYMBOL_PRINT ("Next token is", yytoken
, &yylval
, &yylloc
);
2756 /* If the proper action on seeing token YYTOKEN is to reduce or to
2757 detect an error, take that action. */
2759 if (yyn
< 0 || YYLAST
< yyn
|| yycheck
[yyn
] != yytoken
)
2764 if (yyn
== 0 || yyn
== YYTABLE_NINF
)
2770 /* Count tokens shifted since error; after three, turn off error
2775 /* Shift the lookahead token. */
2776 YY_SYMBOL_PRINT ("Shifting", yytoken
, &yylval
, &yylloc
);
2778 /* Discard the shifted token. */
2787 /*-----------------------------------------------------------.
2788 | yydefault -- do the default action for the current state. |
2789 `-----------------------------------------------------------*/
2791 yyn
= yydefact
[yystate
];
2797 /*-----------------------------.
2798 | yyreduce -- Do a reduction. |
2799 `-----------------------------*/
2801 /* yyn is the number of a rule to reduce with. */
2804 /* If YYLEN is nonzero, implement the default value of the action:
2807 Otherwise, the following line sets YYVAL to garbage.
2808 This behavior is undocumented and Bison
2809 users should not rely upon it. Assigning to YYVAL
2810 unconditionally makes the parser a bit smaller, and it avoids a
2811 GCC warning that YYVAL may be used uninitialized. */
2812 yyval
= yyvsp
[1-yylen
];
2814 /* Default location. */
2815 YYLLOC_DEFAULT (yyloc
, (yylsp
- yylen
), yylen
);
2816 YY_REDUCE_PRINT (yyn
);
2821 /* Line 1464 of yacc.c */
2822 #line 212 "glsl_parser.ypp"
2824 _mesa_glsl_initialize_types(state
);
2830 /* Line 1464 of yacc.c */
2831 #line 221 "glsl_parser.ypp"
2833 switch ((yyvsp
[(2) - (3)].n
)) {
2835 state
->es_shader
= true;
2839 /* FINISHME: Check against implementation support versions. */
2840 state
->language_version
= (yyvsp
[(2) - (3)].n
);
2843 _mesa_glsl_error(& (yylsp
[(2) - (3)]), state
, "Shading language version"
2844 "%u is not supported\n", (yyvsp
[(2) - (3)].n
));
2852 /* Line 1464 of yacc.c */
2853 #line 253 "glsl_parser.ypp"
2855 if (!_mesa_glsl_process_extension((yyvsp
[(2) - (5)].identifier
), & (yylsp
[(2) - (5)]), (yyvsp
[(4) - (5)].identifier
), & (yylsp
[(4) - (5)]), state
)) {
2863 /* Line 1464 of yacc.c */
2864 #line 262 "glsl_parser.ypp"
2866 /* FINISHME: The NULL test is only required because 'precision'
2867 * FINISHME: statements are not yet supported.
2869 if ((yyvsp
[(1) - (1)].node
) != NULL
)
2870 state
->translation_unit
.push_tail(& (yyvsp
[(1) - (1)].node
)->link
);
2876 /* Line 1464 of yacc.c */
2877 #line 270 "glsl_parser.ypp"
2879 /* FINISHME: The NULL test is only required because 'precision'
2880 * FINISHME: statements are not yet supported.
2882 if ((yyvsp
[(2) - (2)].node
) != NULL
)
2883 state
->translation_unit
.push_tail(& (yyvsp
[(2) - (2)].node
)->link
);
2889 /* Line 1464 of yacc.c */
2890 #line 285 "glsl_parser.ypp"
2893 (yyval
.expression
) = new(ctx
) ast_expression(ast_identifier
, NULL
, NULL
, NULL
);
2894 (yyval
.expression
)->set_location(yylloc
);
2895 (yyval
.expression
)->primary_expression
.identifier
= (yyvsp
[(1) - (1)].identifier
);
2901 /* Line 1464 of yacc.c */
2902 #line 292 "glsl_parser.ypp"
2905 (yyval
.expression
) = new(ctx
) ast_expression(ast_int_constant
, NULL
, NULL
, NULL
);
2906 (yyval
.expression
)->set_location(yylloc
);
2907 (yyval
.expression
)->primary_expression
.int_constant
= (yyvsp
[(1) - (1)].n
);
2913 /* Line 1464 of yacc.c */
2914 #line 299 "glsl_parser.ypp"
2917 (yyval
.expression
) = new(ctx
) ast_expression(ast_uint_constant
, NULL
, NULL
, NULL
);
2918 (yyval
.expression
)->set_location(yylloc
);
2919 (yyval
.expression
)->primary_expression
.uint_constant
= (yyvsp
[(1) - (1)].n
);
2925 /* Line 1464 of yacc.c */
2926 #line 306 "glsl_parser.ypp"
2929 (yyval
.expression
) = new(ctx
) ast_expression(ast_float_constant
, NULL
, NULL
, NULL
);
2930 (yyval
.expression
)->set_location(yylloc
);
2931 (yyval
.expression
)->primary_expression
.float_constant
= (yyvsp
[(1) - (1)].real
);
2937 /* Line 1464 of yacc.c */
2938 #line 313 "glsl_parser.ypp"
2941 (yyval
.expression
) = new(ctx
) ast_expression(ast_bool_constant
, NULL
, NULL
, NULL
);
2942 (yyval
.expression
)->set_location(yylloc
);
2943 (yyval
.expression
)->primary_expression
.bool_constant
= (yyvsp
[(1) - (1)].n
);
2949 /* Line 1464 of yacc.c */
2950 #line 320 "glsl_parser.ypp"
2952 (yyval
.expression
) = (yyvsp
[(2) - (3)].expression
);
2958 /* Line 1464 of yacc.c */
2959 #line 328 "glsl_parser.ypp"
2962 (yyval
.expression
) = new(ctx
) ast_expression(ast_array_index
, (yyvsp
[(1) - (4)].expression
), (yyvsp
[(3) - (4)].expression
), NULL
);
2963 (yyval
.expression
)->set_location(yylloc
);
2969 /* Line 1464 of yacc.c */
2970 #line 334 "glsl_parser.ypp"
2972 (yyval
.expression
) = (yyvsp
[(1) - (1)].expression
);
2978 /* Line 1464 of yacc.c */
2979 #line 338 "glsl_parser.ypp"
2982 (yyval
.expression
) = new(ctx
) ast_expression(ast_field_selection
, (yyvsp
[(1) - (3)].expression
), NULL
, NULL
);
2983 (yyval
.expression
)->set_location(yylloc
);
2984 (yyval
.expression
)->primary_expression
.identifier
= (yyvsp
[(3) - (3)].identifier
);
2990 /* Line 1464 of yacc.c */
2991 #line 345 "glsl_parser.ypp"
2994 (yyval
.expression
) = new(ctx
) ast_expression(ast_post_inc
, (yyvsp
[(1) - (2)].expression
), NULL
, NULL
);
2995 (yyval
.expression
)->set_location(yylloc
);
3001 /* Line 1464 of yacc.c */
3002 #line 351 "glsl_parser.ypp"
3005 (yyval
.expression
) = new(ctx
) ast_expression(ast_post_dec
, (yyvsp
[(1) - (2)].expression
), NULL
, NULL
);
3006 (yyval
.expression
)->set_location(yylloc
);
3012 /* Line 1464 of yacc.c */
3013 #line 369 "glsl_parser.ypp"
3016 (yyval
.expression
) = new(ctx
) ast_expression(ast_field_selection
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
), NULL
);
3017 (yyval
.expression
)->set_location(yylloc
);
3023 /* Line 1464 of yacc.c */
3024 #line 388 "glsl_parser.ypp"
3026 (yyval
.expression
) = (yyvsp
[(1) - (2)].expression
);
3027 (yyval
.expression
)->set_location(yylloc
);
3028 (yyval
.expression
)->expressions
.push_tail(& (yyvsp
[(2) - (2)].expression
)->link
);
3034 /* Line 1464 of yacc.c */
3035 #line 394 "glsl_parser.ypp"
3037 (yyval
.expression
) = (yyvsp
[(1) - (3)].expression
);
3038 (yyval
.expression
)->set_location(yylloc
);
3039 (yyval
.expression
)->expressions
.push_tail(& (yyvsp
[(3) - (3)].expression
)->link
);
3045 /* Line 1464 of yacc.c */
3046 #line 410 "glsl_parser.ypp"
3049 (yyval
.expression
) = new(ctx
) ast_function_expression((yyvsp
[(1) - (1)].type_specifier
));
3050 (yyval
.expression
)->set_location(yylloc
);
3056 /* Line 1464 of yacc.c */
3057 #line 416 "glsl_parser.ypp"
3060 ast_expression
*callee
= new(ctx
) ast_expression((yyvsp
[(1) - (1)].identifier
));
3061 (yyval
.expression
) = new(ctx
) ast_function_expression(callee
);
3062 (yyval
.expression
)->set_location(yylloc
);
3068 /* Line 1464 of yacc.c */
3069 #line 423 "glsl_parser.ypp"
3072 ast_expression
*callee
= new(ctx
) ast_expression((yyvsp
[(1) - (1)].identifier
));
3073 (yyval
.expression
) = new(ctx
) ast_function_expression(callee
);
3074 (yyval
.expression
)->set_location(yylloc
);
3080 /* Line 1464 of yacc.c */
3081 #line 435 "glsl_parser.ypp"
3084 (yyval
.expression
) = new(ctx
) ast_expression(ast_pre_inc
, (yyvsp
[(2) - (2)].expression
), NULL
, NULL
);
3085 (yyval
.expression
)->set_location(yylloc
);
3091 /* Line 1464 of yacc.c */
3092 #line 441 "glsl_parser.ypp"
3095 (yyval
.expression
) = new(ctx
) ast_expression(ast_pre_dec
, (yyvsp
[(2) - (2)].expression
), NULL
, NULL
);
3096 (yyval
.expression
)->set_location(yylloc
);
3102 /* Line 1464 of yacc.c */
3103 #line 447 "glsl_parser.ypp"
3106 (yyval
.expression
) = new(ctx
) ast_expression((yyvsp
[(1) - (2)].n
), (yyvsp
[(2) - (2)].expression
), NULL
, NULL
);
3107 (yyval
.expression
)->set_location(yylloc
);
3113 /* Line 1464 of yacc.c */
3114 #line 456 "glsl_parser.ypp"
3115 { (yyval
.n
) = ast_plus
; ;}
3120 /* Line 1464 of yacc.c */
3121 #line 457 "glsl_parser.ypp"
3122 { (yyval
.n
) = ast_neg
; ;}
3127 /* Line 1464 of yacc.c */
3128 #line 458 "glsl_parser.ypp"
3129 { (yyval
.n
) = ast_logic_not
; ;}
3134 /* Line 1464 of yacc.c */
3135 #line 459 "glsl_parser.ypp"
3136 { (yyval
.n
) = ast_bit_not
; ;}
3141 /* Line 1464 of yacc.c */
3142 #line 465 "glsl_parser.ypp"
3145 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_mul
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3146 (yyval
.expression
)->set_location(yylloc
);
3152 /* Line 1464 of yacc.c */
3153 #line 471 "glsl_parser.ypp"
3156 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_div
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3157 (yyval
.expression
)->set_location(yylloc
);
3163 /* Line 1464 of yacc.c */
3164 #line 477 "glsl_parser.ypp"
3167 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_mod
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3168 (yyval
.expression
)->set_location(yylloc
);
3174 /* Line 1464 of yacc.c */
3175 #line 487 "glsl_parser.ypp"
3178 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_add
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3179 (yyval
.expression
)->set_location(yylloc
);
3185 /* Line 1464 of yacc.c */
3186 #line 493 "glsl_parser.ypp"
3189 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_sub
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3190 (yyval
.expression
)->set_location(yylloc
);
3196 /* Line 1464 of yacc.c */
3197 #line 503 "glsl_parser.ypp"
3200 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_lshift
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3201 (yyval
.expression
)->set_location(yylloc
);
3207 /* Line 1464 of yacc.c */
3208 #line 509 "glsl_parser.ypp"
3211 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_rshift
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3212 (yyval
.expression
)->set_location(yylloc
);
3218 /* Line 1464 of yacc.c */
3219 #line 519 "glsl_parser.ypp"
3222 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_less
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3223 (yyval
.expression
)->set_location(yylloc
);
3229 /* Line 1464 of yacc.c */
3230 #line 525 "glsl_parser.ypp"
3233 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_greater
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3234 (yyval
.expression
)->set_location(yylloc
);
3240 /* Line 1464 of yacc.c */
3241 #line 531 "glsl_parser.ypp"
3244 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_lequal
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3245 (yyval
.expression
)->set_location(yylloc
);
3251 /* Line 1464 of yacc.c */
3252 #line 537 "glsl_parser.ypp"
3255 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_gequal
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3256 (yyval
.expression
)->set_location(yylloc
);
3262 /* Line 1464 of yacc.c */
3263 #line 547 "glsl_parser.ypp"
3266 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_equal
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3267 (yyval
.expression
)->set_location(yylloc
);
3273 /* Line 1464 of yacc.c */
3274 #line 553 "glsl_parser.ypp"
3277 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_nequal
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3278 (yyval
.expression
)->set_location(yylloc
);
3284 /* Line 1464 of yacc.c */
3285 #line 563 "glsl_parser.ypp"
3288 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_bit_and
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3289 (yyval
.expression
)->set_location(yylloc
);
3295 /* Line 1464 of yacc.c */
3296 #line 573 "glsl_parser.ypp"
3299 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_bit_xor
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3300 (yyval
.expression
)->set_location(yylloc
);
3306 /* Line 1464 of yacc.c */
3307 #line 583 "glsl_parser.ypp"
3310 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_bit_or
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3311 (yyval
.expression
)->set_location(yylloc
);
3317 /* Line 1464 of yacc.c */
3318 #line 593 "glsl_parser.ypp"
3321 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_logic_and
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3322 (yyval
.expression
)->set_location(yylloc
);
3328 /* Line 1464 of yacc.c */
3329 #line 603 "glsl_parser.ypp"
3332 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_logic_xor
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3333 (yyval
.expression
)->set_location(yylloc
);
3339 /* Line 1464 of yacc.c */
3340 #line 613 "glsl_parser.ypp"
3343 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_logic_or
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3344 (yyval
.expression
)->set_location(yylloc
);
3350 /* Line 1464 of yacc.c */
3351 #line 623 "glsl_parser.ypp"
3354 (yyval
.expression
) = new(ctx
) ast_expression(ast_conditional
, (yyvsp
[(1) - (5)].expression
), (yyvsp
[(3) - (5)].expression
), (yyvsp
[(5) - (5)].expression
));
3355 (yyval
.expression
)->set_location(yylloc
);
3361 /* Line 1464 of yacc.c */
3362 #line 633 "glsl_parser.ypp"
3365 (yyval
.expression
) = new(ctx
) ast_expression((yyvsp
[(2) - (3)].n
), (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
), NULL
);
3366 (yyval
.expression
)->set_location(yylloc
);
3372 /* Line 1464 of yacc.c */
3373 #line 641 "glsl_parser.ypp"
3374 { (yyval
.n
) = ast_assign
; ;}
3379 /* Line 1464 of yacc.c */
3380 #line 642 "glsl_parser.ypp"
3381 { (yyval
.n
) = ast_mul_assign
; ;}
3386 /* Line 1464 of yacc.c */
3387 #line 643 "glsl_parser.ypp"
3388 { (yyval
.n
) = ast_div_assign
; ;}
3393 /* Line 1464 of yacc.c */
3394 #line 644 "glsl_parser.ypp"
3395 { (yyval
.n
) = ast_mod_assign
; ;}
3400 /* Line 1464 of yacc.c */
3401 #line 645 "glsl_parser.ypp"
3402 { (yyval
.n
) = ast_add_assign
; ;}
3407 /* Line 1464 of yacc.c */
3408 #line 646 "glsl_parser.ypp"
3409 { (yyval
.n
) = ast_sub_assign
; ;}
3414 /* Line 1464 of yacc.c */
3415 #line 647 "glsl_parser.ypp"
3416 { (yyval
.n
) = ast_ls_assign
; ;}
3421 /* Line 1464 of yacc.c */
3422 #line 648 "glsl_parser.ypp"
3423 { (yyval
.n
) = ast_rs_assign
; ;}
3428 /* Line 1464 of yacc.c */
3429 #line 649 "glsl_parser.ypp"
3430 { (yyval
.n
) = ast_and_assign
; ;}
3435 /* Line 1464 of yacc.c */
3436 #line 650 "glsl_parser.ypp"
3437 { (yyval
.n
) = ast_xor_assign
; ;}
3442 /* Line 1464 of yacc.c */
3443 #line 651 "glsl_parser.ypp"
3444 { (yyval
.n
) = ast_or_assign
; ;}
3449 /* Line 1464 of yacc.c */
3450 #line 656 "glsl_parser.ypp"
3452 (yyval
.expression
) = (yyvsp
[(1) - (1)].expression
);
3458 /* Line 1464 of yacc.c */
3459 #line 660 "glsl_parser.ypp"
3462 if ((yyvsp
[(1) - (3)].expression
)->oper
!= ast_sequence
) {
3463 (yyval
.expression
) = new(ctx
) ast_expression(ast_sequence
, NULL
, NULL
, NULL
);
3464 (yyval
.expression
)->set_location(yylloc
);
3465 (yyval
.expression
)->expressions
.push_tail(& (yyvsp
[(1) - (3)].expression
)->link
);
3467 (yyval
.expression
) = (yyvsp
[(1) - (3)].expression
);
3470 (yyval
.expression
)->expressions
.push_tail(& (yyvsp
[(3) - (3)].expression
)->link
);
3476 /* Line 1464 of yacc.c */
3477 #line 680 "glsl_parser.ypp"
3479 (yyval
.node
) = (yyvsp
[(1) - (2)].function
);
3485 /* Line 1464 of yacc.c */
3486 #line 684 "glsl_parser.ypp"
3488 (yyval
.node
) = (yyvsp
[(1) - (2)].declarator_list
);
3494 /* Line 1464 of yacc.c */
3495 #line 688 "glsl_parser.ypp"
3497 if (((yyvsp
[(3) - (4)].type_specifier
)->type_specifier
!= ast_float
)
3498 && ((yyvsp
[(3) - (4)].type_specifier
)->type_specifier
!= ast_int
)) {
3499 _mesa_glsl_error(& (yylsp
[(3) - (4)]), state
, "global precision qualifier can "
3500 "only be applied to `int' or `float'\n");
3504 (yyval
.node
) = NULL
; /* FINISHME */
3510 /* Line 1464 of yacc.c */
3511 #line 711 "glsl_parser.ypp"
3513 (yyval
.function
) = (yyvsp
[(1) - (2)].function
);
3514 (yyval
.function
)->parameters
.push_tail(& (yyvsp
[(2) - (2)].parameter_declarator
)->link
);
3520 /* Line 1464 of yacc.c */
3521 #line 716 "glsl_parser.ypp"
3523 (yyval
.function
) = (yyvsp
[(1) - (3)].function
);
3524 (yyval
.function
)->parameters
.push_tail(& (yyvsp
[(3) - (3)].parameter_declarator
)->link
);
3530 /* Line 1464 of yacc.c */
3531 #line 724 "glsl_parser.ypp"
3534 (yyval
.function
) = new(ctx
) ast_function();
3535 (yyval
.function
)->set_location(yylloc
);
3536 (yyval
.function
)->return_type
= (yyvsp
[(1) - (3)].fully_specified_type
);
3537 (yyval
.function
)->identifier
= (yyvsp
[(2) - (3)].identifier
);
3543 /* Line 1464 of yacc.c */
3544 #line 735 "glsl_parser.ypp"
3547 (yyval
.parameter_declarator
) = new(ctx
) ast_parameter_declarator();
3548 (yyval
.parameter_declarator
)->set_location(yylloc
);
3549 (yyval
.parameter_declarator
)->type
= new(ctx
) ast_fully_specified_type();
3550 (yyval
.parameter_declarator
)->type
->set_location(yylloc
);
3551 (yyval
.parameter_declarator
)->type
->specifier
= (yyvsp
[(1) - (2)].type_specifier
);
3552 (yyval
.parameter_declarator
)->identifier
= (yyvsp
[(2) - (2)].identifier
);
3558 /* Line 1464 of yacc.c */
3559 #line 745 "glsl_parser.ypp"
3562 (yyval
.parameter_declarator
) = new(ctx
) ast_parameter_declarator();
3563 (yyval
.parameter_declarator
)->set_location(yylloc
);
3564 (yyval
.parameter_declarator
)->type
= new(ctx
) ast_fully_specified_type();
3565 (yyval
.parameter_declarator
)->type
->set_location(yylloc
);
3566 (yyval
.parameter_declarator
)->type
->specifier
= (yyvsp
[(1) - (5)].type_specifier
);
3567 (yyval
.parameter_declarator
)->identifier
= (yyvsp
[(2) - (5)].identifier
);
3568 (yyval
.parameter_declarator
)->is_array
= true;
3569 (yyval
.parameter_declarator
)->array_size
= (yyvsp
[(4) - (5)].expression
);
3575 /* Line 1464 of yacc.c */
3576 #line 760 "glsl_parser.ypp"
3578 (yyvsp
[(1) - (3)].type_qualifier
).flags
.i
|= (yyvsp
[(2) - (3)].type_qualifier
).flags
.i
;
3580 (yyval
.parameter_declarator
) = (yyvsp
[(3) - (3)].parameter_declarator
);
3581 (yyval
.parameter_declarator
)->type
->qualifier
= (yyvsp
[(1) - (3)].type_qualifier
);
3587 /* Line 1464 of yacc.c */
3588 #line 767 "glsl_parser.ypp"
3590 (yyval
.parameter_declarator
) = (yyvsp
[(2) - (2)].parameter_declarator
);
3591 (yyval
.parameter_declarator
)->type
->qualifier
= (yyvsp
[(1) - (2)].type_qualifier
);
3597 /* Line 1464 of yacc.c */
3598 #line 772 "glsl_parser.ypp"
3601 (yyvsp
[(1) - (3)].type_qualifier
).flags
.i
|= (yyvsp
[(2) - (3)].type_qualifier
).flags
.i
;
3603 (yyval
.parameter_declarator
) = new(ctx
) ast_parameter_declarator();
3604 (yyval
.parameter_declarator
)->set_location(yylloc
);
3605 (yyval
.parameter_declarator
)->type
= new(ctx
) ast_fully_specified_type();
3606 (yyval
.parameter_declarator
)->type
->qualifier
= (yyvsp
[(1) - (3)].type_qualifier
);
3607 (yyval
.parameter_declarator
)->type
->specifier
= (yyvsp
[(3) - (3)].type_specifier
);
3613 /* Line 1464 of yacc.c */
3614 #line 783 "glsl_parser.ypp"
3617 (yyval
.parameter_declarator
) = new(ctx
) ast_parameter_declarator();
3618 (yyval
.parameter_declarator
)->set_location(yylloc
);
3619 (yyval
.parameter_declarator
)->type
= new(ctx
) ast_fully_specified_type();
3620 (yyval
.parameter_declarator
)->type
->qualifier
= (yyvsp
[(1) - (2)].type_qualifier
);
3621 (yyval
.parameter_declarator
)->type
->specifier
= (yyvsp
[(2) - (2)].type_specifier
);
3627 /* Line 1464 of yacc.c */
3628 #line 795 "glsl_parser.ypp"
3630 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
3636 /* Line 1464 of yacc.c */
3637 #line 799 "glsl_parser.ypp"
3639 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
3640 (yyval
.type_qualifier
).flags
.q
.in
= 1;
3646 /* Line 1464 of yacc.c */
3647 #line 804 "glsl_parser.ypp"
3649 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
3650 (yyval
.type_qualifier
).flags
.q
.out
= 1;
3656 /* Line 1464 of yacc.c */
3657 #line 809 "glsl_parser.ypp"
3659 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
3660 (yyval
.type_qualifier
).flags
.q
.in
= 1;
3661 (yyval
.type_qualifier
).flags
.q
.out
= 1;
3667 /* Line 1464 of yacc.c */
3668 #line 823 "glsl_parser.ypp"
3671 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(3) - (3)].identifier
), false, NULL
, NULL
);
3672 decl
->set_location(yylloc
);
3674 (yyval
.declarator_list
) = (yyvsp
[(1) - (3)].declarator_list
);
3675 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3681 /* Line 1464 of yacc.c */
3682 #line 832 "glsl_parser.ypp"
3685 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(3) - (5)].identifier
), true, NULL
, NULL
);
3686 decl
->set_location(yylloc
);
3688 (yyval
.declarator_list
) = (yyvsp
[(1) - (5)].declarator_list
);
3689 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3695 /* Line 1464 of yacc.c */
3696 #line 841 "glsl_parser.ypp"
3699 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(3) - (6)].identifier
), true, (yyvsp
[(5) - (6)].expression
), NULL
);
3700 decl
->set_location(yylloc
);
3702 (yyval
.declarator_list
) = (yyvsp
[(1) - (6)].declarator_list
);
3703 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3709 /* Line 1464 of yacc.c */
3710 #line 850 "glsl_parser.ypp"
3713 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(3) - (7)].identifier
), true, NULL
, (yyvsp
[(7) - (7)].expression
));
3714 decl
->set_location(yylloc
);
3716 (yyval
.declarator_list
) = (yyvsp
[(1) - (7)].declarator_list
);
3717 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3723 /* Line 1464 of yacc.c */
3724 #line 859 "glsl_parser.ypp"
3727 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(3) - (8)].identifier
), true, (yyvsp
[(5) - (8)].expression
), (yyvsp
[(8) - (8)].expression
));
3728 decl
->set_location(yylloc
);
3730 (yyval
.declarator_list
) = (yyvsp
[(1) - (8)].declarator_list
);
3731 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3737 /* Line 1464 of yacc.c */
3738 #line 868 "glsl_parser.ypp"
3741 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(3) - (5)].identifier
), false, NULL
, (yyvsp
[(5) - (5)].expression
));
3742 decl
->set_location(yylloc
);
3744 (yyval
.declarator_list
) = (yyvsp
[(1) - (5)].declarator_list
);
3745 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3751 /* Line 1464 of yacc.c */
3752 #line 881 "glsl_parser.ypp"
3755 if ((yyvsp
[(1) - (1)].fully_specified_type
)->specifier
->type_specifier
!= ast_struct
) {
3756 _mesa_glsl_error(& (yylsp
[(1) - (1)]), state
, "empty declaration list\n");
3759 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list((yyvsp
[(1) - (1)].fully_specified_type
));
3760 (yyval
.declarator_list
)->set_location(yylloc
);
3767 /* Line 1464 of yacc.c */
3768 #line 892 "glsl_parser.ypp"
3771 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(2) - (2)].identifier
), false, NULL
, NULL
);
3773 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list((yyvsp
[(1) - (2)].fully_specified_type
));
3774 (yyval
.declarator_list
)->set_location(yylloc
);
3775 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3781 /* Line 1464 of yacc.c */
3782 #line 901 "glsl_parser.ypp"
3785 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(2) - (4)].identifier
), true, NULL
, NULL
);
3787 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list((yyvsp
[(1) - (4)].fully_specified_type
));
3788 (yyval
.declarator_list
)->set_location(yylloc
);
3789 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3795 /* Line 1464 of yacc.c */
3796 #line 910 "glsl_parser.ypp"
3799 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(2) - (5)].identifier
), true, (yyvsp
[(4) - (5)].expression
), NULL
);
3801 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list((yyvsp
[(1) - (5)].fully_specified_type
));
3802 (yyval
.declarator_list
)->set_location(yylloc
);
3803 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3809 /* Line 1464 of yacc.c */
3810 #line 919 "glsl_parser.ypp"
3813 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(2) - (6)].identifier
), true, NULL
, (yyvsp
[(6) - (6)].expression
));
3815 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list((yyvsp
[(1) - (6)].fully_specified_type
));
3816 (yyval
.declarator_list
)->set_location(yylloc
);
3817 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3823 /* Line 1464 of yacc.c */
3824 #line 928 "glsl_parser.ypp"
3827 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(2) - (7)].identifier
), true, (yyvsp
[(4) - (7)].expression
), (yyvsp
[(7) - (7)].expression
));
3829 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list((yyvsp
[(1) - (7)].fully_specified_type
));
3830 (yyval
.declarator_list
)->set_location(yylloc
);
3831 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3837 /* Line 1464 of yacc.c */
3838 #line 937 "glsl_parser.ypp"
3841 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(2) - (4)].identifier
), false, NULL
, (yyvsp
[(4) - (4)].expression
));
3843 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list((yyvsp
[(1) - (4)].fully_specified_type
));
3844 (yyval
.declarator_list
)->set_location(yylloc
);
3845 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3851 /* Line 1464 of yacc.c */
3852 #line 946 "glsl_parser.ypp"
3855 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(2) - (2)].identifier
), false, NULL
, NULL
);
3857 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list(NULL
);
3858 (yyval
.declarator_list
)->set_location(yylloc
);
3859 (yyval
.declarator_list
)->invariant
= true;
3861 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3867 /* Line 1464 of yacc.c */
3868 #line 960 "glsl_parser.ypp"
3871 (yyval
.fully_specified_type
) = new(ctx
) ast_fully_specified_type();
3872 (yyval
.fully_specified_type
)->set_location(yylloc
);
3873 (yyval
.fully_specified_type
)->specifier
= (yyvsp
[(1) - (1)].type_specifier
);
3879 /* Line 1464 of yacc.c */
3880 #line 967 "glsl_parser.ypp"
3883 (yyval
.fully_specified_type
) = new(ctx
) ast_fully_specified_type();
3884 (yyval
.fully_specified_type
)->set_location(yylloc
);
3885 (yyval
.fully_specified_type
)->qualifier
= (yyvsp
[(1) - (2)].type_qualifier
);
3886 (yyval
.fully_specified_type
)->specifier
= (yyvsp
[(2) - (2)].type_specifier
);
3892 /* Line 1464 of yacc.c */
3893 #line 978 "glsl_parser.ypp"
3895 (yyval
.type_qualifier
) = (yyvsp
[(3) - (4)].type_qualifier
);
3901 /* Line 1464 of yacc.c */
3902 #line 986 "glsl_parser.ypp"
3904 if (((yyvsp
[(1) - (3)].type_qualifier
).flags
.i
& (yyvsp
[(3) - (3)].type_qualifier
).flags
.i
) != 0) {
3905 _mesa_glsl_error(& (yylsp
[(3) - (3)]), state
,
3906 "duplicate layout qualifiers used\n");
3910 (yyval
.type_qualifier
).flags
.i
= (yyvsp
[(1) - (3)].type_qualifier
).flags
.i
| (yyvsp
[(3) - (3)].type_qualifier
).flags
.i
;
3912 if ((yyvsp
[(1) - (3)].type_qualifier
).flags
.q
.explicit_location
)
3913 (yyval
.type_qualifier
).location
= (yyvsp
[(1) - (3)].type_qualifier
).location
;
3915 if ((yyvsp
[(3) - (3)].type_qualifier
).flags
.q
.explicit_location
)
3916 (yyval
.type_qualifier
).location
= (yyvsp
[(3) - (3)].type_qualifier
).location
;
3922 /* Line 1464 of yacc.c */
3923 #line 1005 "glsl_parser.ypp"
3925 bool got_one
= false;
3927 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
3929 if (state
->ARB_fragment_coord_conventions_enable
) {
3930 if (strcmp((yyvsp
[(1) - (1)].identifier
), "origin_upper_left") == 0) {
3932 (yyval
.type_qualifier
).flags
.q
.origin_upper_left
= 1;
3933 } else if (strcmp((yyvsp
[(1) - (1)].identifier
), "pixel_center_integer") == 0) {
3935 (yyval
.type_qualifier
).flags
.q
.pixel_center_integer
= 1;
3939 /* If the identifier didn't match any known layout identifiers,
3943 _mesa_glsl_error(& (yylsp
[(1) - (1)]), state
, "unrecognized layout identifier "
3944 "`%s'\n", (yyvsp
[(1) - (1)].identifier
));
3946 } else if (state
->ARB_fragment_coord_conventions_warn
) {
3947 _mesa_glsl_warning(& (yylsp
[(1) - (1)]), state
,
3948 "GL_ARB_fragment_coord_conventions layout "
3949 "identifier `%s' used\n", (yyvsp
[(1) - (1)].identifier
));
3956 /* Line 1464 of yacc.c */
3957 #line 1034 "glsl_parser.ypp"
3959 bool got_one
= false;
3961 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
3963 if (state
->ARB_explicit_attrib_location_enable
) {
3964 /* FINISHME: Handle 'index' once GL_ARB_blend_func_exteneded and
3965 * FINISHME: GLSL 1.30 (or later) are supported.
3967 if (strcmp("location", (yyvsp
[(1) - (3)].identifier
)) == 0) {
3970 (yyval
.type_qualifier
).flags
.q
.explicit_location
= 1;
3972 if ((yyvsp
[(3) - (3)].n
) >= 0) {
3973 (yyval
.type_qualifier
).location
= (yyvsp
[(3) - (3)].n
);
3975 _mesa_glsl_error(& (yylsp
[(3) - (3)]), state
,
3976 "invalid location %d specified\n", (yyvsp
[(3) - (3)].n
));
3982 /* If the identifier didn't match any known layout identifiers,
3986 _mesa_glsl_error(& (yylsp
[(1) - (3)]), state
, "unrecognized layout identifier "
3987 "`%s'\n", (yyvsp
[(1) - (3)].identifier
));
3989 } else if (state
->ARB_explicit_attrib_location_warn
) {
3990 _mesa_glsl_warning(& (yylsp
[(1) - (3)]), state
,
3991 "GL_ARB_explicit_attrib_location layout "
3992 "identifier `%s' used\n", (yyvsp
[(1) - (3)].identifier
));
3999 /* Line 1464 of yacc.c */
4000 #line 1075 "glsl_parser.ypp"
4002 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
4003 (yyval
.type_qualifier
).flags
.q
.smooth
= 1;
4009 /* Line 1464 of yacc.c */
4010 #line 1080 "glsl_parser.ypp"
4012 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
4013 (yyval
.type_qualifier
).flags
.q
.flat
= 1;
4019 /* Line 1464 of yacc.c */
4020 #line 1085 "glsl_parser.ypp"
4022 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
4023 (yyval
.type_qualifier
).flags
.q
.noperspective
= 1;
4029 /* Line 1464 of yacc.c */
4030 #line 1093 "glsl_parser.ypp"
4032 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
4033 (yyval
.type_qualifier
).flags
.q
.constant
= 1;
4039 /* Line 1464 of yacc.c */
4040 #line 1103 "glsl_parser.ypp"
4042 (yyval
.type_qualifier
) = (yyvsp
[(1) - (2)].type_qualifier
);
4043 (yyval
.type_qualifier
).flags
.i
|= (yyvsp
[(2) - (2)].type_qualifier
).flags
.i
;
4049 /* Line 1464 of yacc.c */
4050 #line 1109 "glsl_parser.ypp"
4052 (yyval
.type_qualifier
) = (yyvsp
[(1) - (2)].type_qualifier
);
4053 (yyval
.type_qualifier
).flags
.i
|= (yyvsp
[(2) - (2)].type_qualifier
).flags
.i
;
4059 /* Line 1464 of yacc.c */
4060 #line 1114 "glsl_parser.ypp"
4062 (yyval
.type_qualifier
) = (yyvsp
[(2) - (2)].type_qualifier
);
4063 (yyval
.type_qualifier
).flags
.q
.invariant
= 1;
4069 /* Line 1464 of yacc.c */
4070 #line 1119 "glsl_parser.ypp"
4072 (yyval
.type_qualifier
) = (yyvsp
[(2) - (3)].type_qualifier
);
4073 (yyval
.type_qualifier
).flags
.i
|= (yyvsp
[(3) - (3)].type_qualifier
).flags
.i
;
4074 (yyval
.type_qualifier
).flags
.q
.invariant
= 1;
4080 /* Line 1464 of yacc.c */
4081 #line 1125 "glsl_parser.ypp"
4083 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
4084 (yyval
.type_qualifier
).flags
.q
.invariant
= 1;
4090 /* Line 1464 of yacc.c */
4091 #line 1133 "glsl_parser.ypp"
4093 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
4094 (yyval
.type_qualifier
).flags
.q
.constant
= 1;
4100 /* Line 1464 of yacc.c */
4101 #line 1138 "glsl_parser.ypp"
4103 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
4104 (yyval
.type_qualifier
).flags
.q
.attribute
= 1;
4110 /* Line 1464 of yacc.c */
4111 #line 1143 "glsl_parser.ypp"
4113 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
4114 (yyval
.type_qualifier
).flags
.q
.varying
= 1;
4120 /* Line 1464 of yacc.c */
4121 #line 1148 "glsl_parser.ypp"
4123 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
4124 (yyval
.type_qualifier
).flags
.q
.centroid
= 1;
4125 (yyval
.type_qualifier
).flags
.q
.varying
= 1;
4131 /* Line 1464 of yacc.c */
4132 #line 1154 "glsl_parser.ypp"
4134 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
4135 (yyval
.type_qualifier
).flags
.q
.in
= 1;
4141 /* Line 1464 of yacc.c */
4142 #line 1159 "glsl_parser.ypp"
4144 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
4145 (yyval
.type_qualifier
).flags
.q
.out
= 1;
4151 /* Line 1464 of yacc.c */
4152 #line 1164 "glsl_parser.ypp"
4154 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
4155 (yyval
.type_qualifier
).flags
.q
.centroid
= 1; (yyval
.type_qualifier
).flags
.q
.in
= 1;
4161 /* Line 1464 of yacc.c */
4162 #line 1169 "glsl_parser.ypp"
4164 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
4165 (yyval
.type_qualifier
).flags
.q
.centroid
= 1; (yyval
.type_qualifier
).flags
.q
.out
= 1;
4171 /* Line 1464 of yacc.c */
4172 #line 1174 "glsl_parser.ypp"
4174 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
4175 (yyval
.type_qualifier
).flags
.q
.uniform
= 1;
4181 /* Line 1464 of yacc.c */
4182 #line 1183 "glsl_parser.ypp"
4184 (yyval
.type_specifier
) = (yyvsp
[(2) - (2)].type_specifier
);
4185 (yyval
.type_specifier
)->precision
= (yyvsp
[(1) - (2)].n
);
4191 /* Line 1464 of yacc.c */
4192 #line 1192 "glsl_parser.ypp"
4194 (yyval
.type_specifier
) = (yyvsp
[(1) - (3)].type_specifier
);
4195 (yyval
.type_specifier
)->is_array
= true;
4196 (yyval
.type_specifier
)->array_size
= NULL
;
4202 /* Line 1464 of yacc.c */
4203 #line 1198 "glsl_parser.ypp"
4205 (yyval
.type_specifier
) = (yyvsp
[(1) - (4)].type_specifier
);
4206 (yyval
.type_specifier
)->is_array
= true;
4207 (yyval
.type_specifier
)->array_size
= (yyvsp
[(3) - (4)].expression
);
4213 /* Line 1464 of yacc.c */
4214 #line 1207 "glsl_parser.ypp"
4217 (yyval
.type_specifier
) = new(ctx
) ast_type_specifier((yyvsp
[(1) - (1)].n
));
4218 (yyval
.type_specifier
)->set_location(yylloc
);
4224 /* Line 1464 of yacc.c */
4225 #line 1213 "glsl_parser.ypp"
4228 (yyval
.type_specifier
) = new(ctx
) ast_type_specifier((yyvsp
[(1) - (1)].struct_specifier
));
4229 (yyval
.type_specifier
)->set_location(yylloc
);
4235 /* Line 1464 of yacc.c */
4236 #line 1219 "glsl_parser.ypp"
4239 (yyval
.type_specifier
) = new(ctx
) ast_type_specifier((yyvsp
[(1) - (1)].identifier
));
4240 (yyval
.type_specifier
)->set_location(yylloc
);
4246 /* Line 1464 of yacc.c */
4247 #line 1227 "glsl_parser.ypp"
4248 { (yyval
.n
) = ast_void
; ;}
4253 /* Line 1464 of yacc.c */
4254 #line 1228 "glsl_parser.ypp"
4255 { (yyval
.n
) = ast_float
; ;}
4260 /* Line 1464 of yacc.c */
4261 #line 1229 "glsl_parser.ypp"
4262 { (yyval
.n
) = ast_int
; ;}
4267 /* Line 1464 of yacc.c */
4268 #line 1230 "glsl_parser.ypp"
4269 { (yyval
.n
) = ast_uint
; ;}
4274 /* Line 1464 of yacc.c */
4275 #line 1231 "glsl_parser.ypp"
4276 { (yyval
.n
) = ast_bool
; ;}
4281 /* Line 1464 of yacc.c */
4282 #line 1232 "glsl_parser.ypp"
4283 { (yyval
.n
) = ast_vec2
; ;}
4288 /* Line 1464 of yacc.c */
4289 #line 1233 "glsl_parser.ypp"
4290 { (yyval
.n
) = ast_vec3
; ;}
4295 /* Line 1464 of yacc.c */
4296 #line 1234 "glsl_parser.ypp"
4297 { (yyval
.n
) = ast_vec4
; ;}
4302 /* Line 1464 of yacc.c */
4303 #line 1235 "glsl_parser.ypp"
4304 { (yyval
.n
) = ast_bvec2
; ;}
4309 /* Line 1464 of yacc.c */
4310 #line 1236 "glsl_parser.ypp"
4311 { (yyval
.n
) = ast_bvec3
; ;}
4316 /* Line 1464 of yacc.c */
4317 #line 1237 "glsl_parser.ypp"
4318 { (yyval
.n
) = ast_bvec4
; ;}
4323 /* Line 1464 of yacc.c */
4324 #line 1238 "glsl_parser.ypp"
4325 { (yyval
.n
) = ast_ivec2
; ;}
4330 /* Line 1464 of yacc.c */
4331 #line 1239 "glsl_parser.ypp"
4332 { (yyval
.n
) = ast_ivec3
; ;}
4337 /* Line 1464 of yacc.c */
4338 #line 1240 "glsl_parser.ypp"
4339 { (yyval
.n
) = ast_ivec4
; ;}
4344 /* Line 1464 of yacc.c */
4345 #line 1241 "glsl_parser.ypp"
4346 { (yyval
.n
) = ast_uvec2
; ;}
4351 /* Line 1464 of yacc.c */
4352 #line 1242 "glsl_parser.ypp"
4353 { (yyval
.n
) = ast_uvec3
; ;}
4358 /* Line 1464 of yacc.c */
4359 #line 1243 "glsl_parser.ypp"
4360 { (yyval
.n
) = ast_uvec4
; ;}
4365 /* Line 1464 of yacc.c */
4366 #line 1244 "glsl_parser.ypp"
4367 { (yyval
.n
) = ast_mat2
; ;}
4372 /* Line 1464 of yacc.c */
4373 #line 1245 "glsl_parser.ypp"
4374 { (yyval
.n
) = ast_mat2x3
; ;}
4379 /* Line 1464 of yacc.c */
4380 #line 1246 "glsl_parser.ypp"
4381 { (yyval
.n
) = ast_mat2x4
; ;}
4386 /* Line 1464 of yacc.c */
4387 #line 1247 "glsl_parser.ypp"
4388 { (yyval
.n
) = ast_mat3x2
; ;}
4393 /* Line 1464 of yacc.c */
4394 #line 1248 "glsl_parser.ypp"
4395 { (yyval
.n
) = ast_mat3
; ;}
4400 /* Line 1464 of yacc.c */
4401 #line 1249 "glsl_parser.ypp"
4402 { (yyval
.n
) = ast_mat3x4
; ;}
4407 /* Line 1464 of yacc.c */
4408 #line 1250 "glsl_parser.ypp"
4409 { (yyval
.n
) = ast_mat4x2
; ;}
4414 /* Line 1464 of yacc.c */
4415 #line 1251 "glsl_parser.ypp"
4416 { (yyval
.n
) = ast_mat4x3
; ;}
4421 /* Line 1464 of yacc.c */
4422 #line 1252 "glsl_parser.ypp"
4423 { (yyval
.n
) = ast_mat4
; ;}
4428 /* Line 1464 of yacc.c */
4429 #line 1253 "glsl_parser.ypp"
4430 { (yyval
.n
) = ast_sampler1d
; ;}
4435 /* Line 1464 of yacc.c */
4436 #line 1254 "glsl_parser.ypp"
4437 { (yyval
.n
) = ast_sampler2d
; ;}
4442 /* Line 1464 of yacc.c */
4443 #line 1255 "glsl_parser.ypp"
4444 { (yyval
.n
) = ast_sampler2drect
; ;}
4449 /* Line 1464 of yacc.c */
4450 #line 1256 "glsl_parser.ypp"
4451 { (yyval
.n
) = ast_sampler3d
; ;}
4456 /* Line 1464 of yacc.c */
4457 #line 1257 "glsl_parser.ypp"
4458 { (yyval
.n
) = ast_samplercube
; ;}
4463 /* Line 1464 of yacc.c */
4464 #line 1258 "glsl_parser.ypp"
4465 { (yyval
.n
) = ast_sampler1dshadow
; ;}
4470 /* Line 1464 of yacc.c */
4471 #line 1259 "glsl_parser.ypp"
4472 { (yyval
.n
) = ast_sampler2dshadow
; ;}
4477 /* Line 1464 of yacc.c */
4478 #line 1260 "glsl_parser.ypp"
4479 { (yyval
.n
) = ast_sampler2drectshadow
; ;}
4484 /* Line 1464 of yacc.c */
4485 #line 1261 "glsl_parser.ypp"
4486 { (yyval
.n
) = ast_samplercubeshadow
; ;}
4491 /* Line 1464 of yacc.c */
4492 #line 1262 "glsl_parser.ypp"
4493 { (yyval
.n
) = ast_sampler1darray
; ;}
4498 /* Line 1464 of yacc.c */
4499 #line 1263 "glsl_parser.ypp"
4500 { (yyval
.n
) = ast_sampler2darray
; ;}
4505 /* Line 1464 of yacc.c */
4506 #line 1264 "glsl_parser.ypp"
4507 { (yyval
.n
) = ast_sampler1darrayshadow
; ;}
4512 /* Line 1464 of yacc.c */
4513 #line 1265 "glsl_parser.ypp"
4514 { (yyval
.n
) = ast_sampler2darrayshadow
; ;}
4519 /* Line 1464 of yacc.c */
4520 #line 1266 "glsl_parser.ypp"
4521 { (yyval
.n
) = ast_isampler1d
; ;}
4526 /* Line 1464 of yacc.c */
4527 #line 1267 "glsl_parser.ypp"
4528 { (yyval
.n
) = ast_isampler2d
; ;}
4533 /* Line 1464 of yacc.c */
4534 #line 1268 "glsl_parser.ypp"
4535 { (yyval
.n
) = ast_isampler3d
; ;}
4540 /* Line 1464 of yacc.c */
4541 #line 1269 "glsl_parser.ypp"
4542 { (yyval
.n
) = ast_isamplercube
; ;}
4547 /* Line 1464 of yacc.c */
4548 #line 1270 "glsl_parser.ypp"
4549 { (yyval
.n
) = ast_isampler1darray
; ;}
4554 /* Line 1464 of yacc.c */
4555 #line 1271 "glsl_parser.ypp"
4556 { (yyval
.n
) = ast_isampler2darray
; ;}
4561 /* Line 1464 of yacc.c */
4562 #line 1272 "glsl_parser.ypp"
4563 { (yyval
.n
) = ast_usampler1d
; ;}
4568 /* Line 1464 of yacc.c */
4569 #line 1273 "glsl_parser.ypp"
4570 { (yyval
.n
) = ast_usampler2d
; ;}
4575 /* Line 1464 of yacc.c */
4576 #line 1274 "glsl_parser.ypp"
4577 { (yyval
.n
) = ast_usampler3d
; ;}
4582 /* Line 1464 of yacc.c */
4583 #line 1275 "glsl_parser.ypp"
4584 { (yyval
.n
) = ast_usamplercube
; ;}
4589 /* Line 1464 of yacc.c */
4590 #line 1276 "glsl_parser.ypp"
4591 { (yyval
.n
) = ast_usampler1darray
; ;}
4596 /* Line 1464 of yacc.c */
4597 #line 1277 "glsl_parser.ypp"
4598 { (yyval
.n
) = ast_usampler2darray
; ;}
4603 /* Line 1464 of yacc.c */
4604 #line 1281 "glsl_parser.ypp"
4606 if (!state
->es_shader
&& state
->language_version
< 130)
4607 _mesa_glsl_error(& (yylsp
[(1) - (1)]), state
,
4608 "precision qualifier forbidden "
4609 "in GLSL %d.%d (1.30 or later "
4611 state
->language_version
/ 100,
4612 state
->language_version
% 100);
4614 (yyval
.n
) = ast_precision_high
;
4620 /* Line 1464 of yacc.c */
4621 #line 1292 "glsl_parser.ypp"
4623 if (!state
->es_shader
&& state
->language_version
< 130)
4624 _mesa_glsl_error(& (yylsp
[(1) - (1)]), state
,
4625 "precision qualifier forbidden "
4626 "in GLSL %d.%d (1.30 or later "
4628 state
->language_version
/ 100,
4629 state
->language_version
% 100);
4631 (yyval
.n
) = ast_precision_medium
;
4637 /* Line 1464 of yacc.c */
4638 #line 1303 "glsl_parser.ypp"
4640 if (!state
->es_shader
&& state
->language_version
< 130)
4641 _mesa_glsl_error(& (yylsp
[(1) - (1)]), state
,
4642 "precision qualifier forbidden "
4643 "in GLSL %d.%d (1.30 or later "
4645 state
->language_version
/ 100,
4646 state
->language_version
% 100);
4648 (yyval
.n
) = ast_precision_low
;
4654 /* Line 1464 of yacc.c */
4655 #line 1318 "glsl_parser.ypp"
4658 (yyval
.struct_specifier
) = new(ctx
) ast_struct_specifier((yyvsp
[(2) - (5)].identifier
), (yyvsp
[(4) - (5)].node
));
4659 (yyval
.struct_specifier
)->set_location(yylloc
);
4665 /* Line 1464 of yacc.c */
4666 #line 1324 "glsl_parser.ypp"
4669 (yyval
.struct_specifier
) = new(ctx
) ast_struct_specifier(NULL
, (yyvsp
[(3) - (4)].node
));
4670 (yyval
.struct_specifier
)->set_location(yylloc
);
4676 /* Line 1464 of yacc.c */
4677 #line 1333 "glsl_parser.ypp"
4679 (yyval
.node
) = (ast_node
*) (yyvsp
[(1) - (1)].declarator_list
);
4680 (yyvsp
[(1) - (1)].declarator_list
)->link
.self_link();
4686 /* Line 1464 of yacc.c */
4687 #line 1338 "glsl_parser.ypp"
4689 (yyval
.node
) = (ast_node
*) (yyvsp
[(1) - (2)].node
);
4690 (yyval
.node
)->link
.insert_before(& (yyvsp
[(2) - (2)].declarator_list
)->link
);
4696 /* Line 1464 of yacc.c */
4697 #line 1346 "glsl_parser.ypp"
4700 ast_fully_specified_type
*type
= new(ctx
) ast_fully_specified_type();
4701 type
->set_location(yylloc
);
4703 type
->specifier
= (yyvsp
[(1) - (3)].type_specifier
);
4704 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list(type
);
4705 (yyval
.declarator_list
)->set_location(yylloc
);
4707 (yyval
.declarator_list
)->declarations
.push_degenerate_list_at_head(& (yyvsp
[(2) - (3)].declaration
)->link
);
4713 /* Line 1464 of yacc.c */
4714 #line 1361 "glsl_parser.ypp"
4716 (yyval
.declaration
) = (yyvsp
[(1) - (1)].declaration
);
4717 (yyvsp
[(1) - (1)].declaration
)->link
.self_link();
4723 /* Line 1464 of yacc.c */
4724 #line 1366 "glsl_parser.ypp"
4726 (yyval
.declaration
) = (yyvsp
[(1) - (3)].declaration
);
4727 (yyval
.declaration
)->link
.insert_before(& (yyvsp
[(3) - (3)].declaration
)->link
);
4733 /* Line 1464 of yacc.c */
4734 #line 1374 "glsl_parser.ypp"
4737 (yyval
.declaration
) = new(ctx
) ast_declaration((yyvsp
[(1) - (1)].identifier
), false, NULL
, NULL
);
4738 (yyval
.declaration
)->set_location(yylloc
);
4744 /* Line 1464 of yacc.c */
4745 #line 1380 "glsl_parser.ypp"
4748 (yyval
.declaration
) = new(ctx
) ast_declaration((yyvsp
[(1) - (4)].identifier
), true, (yyvsp
[(3) - (4)].expression
), NULL
);
4749 (yyval
.declaration
)->set_location(yylloc
);
4755 /* Line 1464 of yacc.c */
4756 #line 1398 "glsl_parser.ypp"
4757 { (yyval
.node
) = (ast_node
*) (yyvsp
[(1) - (1)].compound_statement
); ;}
4762 /* Line 1464 of yacc.c */
4763 #line 1406 "glsl_parser.ypp"
4764 { (yyval
.node
) = NULL
; ;}
4769 /* Line 1464 of yacc.c */
4770 #line 1407 "glsl_parser.ypp"
4771 { (yyval
.node
) = NULL
; ;}
4776 /* Line 1464 of yacc.c */
4777 #line 1414 "glsl_parser.ypp"
4780 (yyval
.compound_statement
) = new(ctx
) ast_compound_statement(true, NULL
);
4781 (yyval
.compound_statement
)->set_location(yylloc
);
4787 /* Line 1464 of yacc.c */
4788 #line 1420 "glsl_parser.ypp"
4791 (yyval
.compound_statement
) = new(ctx
) ast_compound_statement(true, (yyvsp
[(2) - (3)].node
));
4792 (yyval
.compound_statement
)->set_location(yylloc
);
4798 /* Line 1464 of yacc.c */
4799 #line 1428 "glsl_parser.ypp"
4800 { (yyval
.node
) = (ast_node
*) (yyvsp
[(1) - (1)].compound_statement
); ;}
4805 /* Line 1464 of yacc.c */
4806 #line 1434 "glsl_parser.ypp"
4809 (yyval
.compound_statement
) = new(ctx
) ast_compound_statement(false, NULL
);
4810 (yyval
.compound_statement
)->set_location(yylloc
);
4816 /* Line 1464 of yacc.c */
4817 #line 1440 "glsl_parser.ypp"
4820 (yyval
.compound_statement
) = new(ctx
) ast_compound_statement(false, (yyvsp
[(2) - (3)].node
));
4821 (yyval
.compound_statement
)->set_location(yylloc
);
4827 /* Line 1464 of yacc.c */
4828 #line 1449 "glsl_parser.ypp"
4830 if ((yyvsp
[(1) - (1)].node
) == NULL
) {
4831 _mesa_glsl_error(& (yylsp
[(1) - (1)]), state
, "<nil> statement\n");
4832 assert((yyvsp
[(1) - (1)].node
) != NULL
);
4835 (yyval
.node
) = (yyvsp
[(1) - (1)].node
);
4836 (yyval
.node
)->link
.self_link();
4842 /* Line 1464 of yacc.c */
4843 #line 1459 "glsl_parser.ypp"
4845 if ((yyvsp
[(2) - (2)].node
) == NULL
) {
4846 _mesa_glsl_error(& (yylsp
[(2) - (2)]), state
, "<nil> statement\n");
4847 assert((yyvsp
[(2) - (2)].node
) != NULL
);
4849 (yyval
.node
) = (yyvsp
[(1) - (2)].node
);
4850 (yyval
.node
)->link
.insert_before(& (yyvsp
[(2) - (2)].node
)->link
);
4856 /* Line 1464 of yacc.c */
4857 #line 1471 "glsl_parser.ypp"
4860 (yyval
.node
) = new(ctx
) ast_expression_statement(NULL
);
4861 (yyval
.node
)->set_location(yylloc
);
4867 /* Line 1464 of yacc.c */
4868 #line 1477 "glsl_parser.ypp"
4871 (yyval
.node
) = new(ctx
) ast_expression_statement((yyvsp
[(1) - (2)].expression
));
4872 (yyval
.node
)->set_location(yylloc
);
4878 /* Line 1464 of yacc.c */
4879 #line 1486 "glsl_parser.ypp"
4881 (yyval
.node
) = new(state
) ast_selection_statement((yyvsp
[(3) - (5)].expression
), (yyvsp
[(5) - (5)].selection_rest_statement
).then_statement
,
4882 (yyvsp
[(5) - (5)].selection_rest_statement
).else_statement
);
4883 (yyval
.node
)->set_location(yylloc
);
4889 /* Line 1464 of yacc.c */
4890 #line 1495 "glsl_parser.ypp"
4892 (yyval
.selection_rest_statement
).then_statement
= (yyvsp
[(1) - (3)].node
);
4893 (yyval
.selection_rest_statement
).else_statement
= (yyvsp
[(3) - (3)].node
);
4899 /* Line 1464 of yacc.c */
4900 #line 1500 "glsl_parser.ypp"
4902 (yyval
.selection_rest_statement
).then_statement
= (yyvsp
[(1) - (1)].node
);
4903 (yyval
.selection_rest_statement
).else_statement
= NULL
;
4909 /* Line 1464 of yacc.c */
4910 #line 1508 "glsl_parser.ypp"
4912 (yyval
.node
) = (ast_node
*) (yyvsp
[(1) - (1)].expression
);
4918 /* Line 1464 of yacc.c */
4919 #line 1512 "glsl_parser.ypp"
4922 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(2) - (4)].identifier
), false, NULL
, (yyvsp
[(4) - (4)].expression
));
4923 ast_declarator_list
*declarator
= new(ctx
) ast_declarator_list((yyvsp
[(1) - (4)].fully_specified_type
));
4924 decl
->set_location(yylloc
);
4925 declarator
->set_location(yylloc
);
4927 declarator
->declarations
.push_tail(&decl
->link
);
4928 (yyval
.node
) = declarator
;
4934 /* Line 1464 of yacc.c */
4935 #line 1535 "glsl_parser.ypp"
4938 (yyval
.node
) = new(ctx
) ast_iteration_statement(ast_iteration_statement::ast_while
,
4939 NULL
, (yyvsp
[(3) - (5)].node
), NULL
, (yyvsp
[(5) - (5)].node
));
4940 (yyval
.node
)->set_location(yylloc
);
4946 /* Line 1464 of yacc.c */
4947 #line 1542 "glsl_parser.ypp"
4950 (yyval
.node
) = new(ctx
) ast_iteration_statement(ast_iteration_statement::ast_do_while
,
4951 NULL
, (yyvsp
[(5) - (7)].expression
), NULL
, (yyvsp
[(2) - (7)].node
));
4952 (yyval
.node
)->set_location(yylloc
);
4958 /* Line 1464 of yacc.c */
4959 #line 1549 "glsl_parser.ypp"
4962 (yyval
.node
) = new(ctx
) ast_iteration_statement(ast_iteration_statement::ast_for
,
4963 (yyvsp
[(3) - (6)].node
), (yyvsp
[(4) - (6)].for_rest_statement
).cond
, (yyvsp
[(4) - (6)].for_rest_statement
).rest
, (yyvsp
[(6) - (6)].node
));
4964 (yyval
.node
)->set_location(yylloc
);
4970 /* Line 1464 of yacc.c */
4971 #line 1565 "glsl_parser.ypp"
4973 (yyval
.node
) = NULL
;
4979 /* Line 1464 of yacc.c */
4980 #line 1572 "glsl_parser.ypp"
4982 (yyval
.for_rest_statement
).cond
= (yyvsp
[(1) - (2)].node
);
4983 (yyval
.for_rest_statement
).rest
= NULL
;
4989 /* Line 1464 of yacc.c */
4990 #line 1577 "glsl_parser.ypp"
4992 (yyval
.for_rest_statement
).cond
= (yyvsp
[(1) - (3)].node
);
4993 (yyval
.for_rest_statement
).rest
= (yyvsp
[(3) - (3)].expression
);
4999 /* Line 1464 of yacc.c */
5000 #line 1586 "glsl_parser.ypp"
5003 (yyval
.node
) = new(ctx
) ast_jump_statement(ast_jump_statement::ast_continue
, NULL
);
5004 (yyval
.node
)->set_location(yylloc
);
5010 /* Line 1464 of yacc.c */
5011 #line 1592 "glsl_parser.ypp"
5014 (yyval
.node
) = new(ctx
) ast_jump_statement(ast_jump_statement::ast_break
, NULL
);
5015 (yyval
.node
)->set_location(yylloc
);
5021 /* Line 1464 of yacc.c */
5022 #line 1598 "glsl_parser.ypp"
5025 (yyval
.node
) = new(ctx
) ast_jump_statement(ast_jump_statement::ast_return
, NULL
);
5026 (yyval
.node
)->set_location(yylloc
);
5032 /* Line 1464 of yacc.c */
5033 #line 1604 "glsl_parser.ypp"
5036 (yyval
.node
) = new(ctx
) ast_jump_statement(ast_jump_statement::ast_return
, (yyvsp
[(2) - (3)].expression
));
5037 (yyval
.node
)->set_location(yylloc
);
5043 /* Line 1464 of yacc.c */
5044 #line 1610 "glsl_parser.ypp"
5047 (yyval
.node
) = new(ctx
) ast_jump_statement(ast_jump_statement::ast_discard
, NULL
);
5048 (yyval
.node
)->set_location(yylloc
);
5054 /* Line 1464 of yacc.c */
5055 #line 1618 "glsl_parser.ypp"
5056 { (yyval
.node
) = (yyvsp
[(1) - (1)].function_definition
); ;}
5061 /* Line 1464 of yacc.c */
5062 #line 1619 "glsl_parser.ypp"
5063 { (yyval
.node
) = (yyvsp
[(1) - (1)].node
); ;}
5068 /* Line 1464 of yacc.c */
5069 #line 1620 "glsl_parser.ypp"
5070 { (yyval
.node
) = NULL
; ;}
5075 /* Line 1464 of yacc.c */
5076 #line 1625 "glsl_parser.ypp"
5079 (yyval
.function_definition
) = new(ctx
) ast_function_definition();
5080 (yyval
.function_definition
)->set_location(yylloc
);
5081 (yyval
.function_definition
)->prototype
= (yyvsp
[(1) - (2)].function
);
5082 (yyval
.function_definition
)->body
= (yyvsp
[(2) - (2)].compound_statement
);
5088 /* Line 1464 of yacc.c */
5089 #line 5090 "glsl_parser.cpp"
5092 YY_SYMBOL_PRINT ("-> $$ =", yyr1
[yyn
], &yyval
, &yyloc
);
5096 YY_STACK_PRINT (yyss
, yyssp
);
5101 /* Now `shift' the result of the reduction. Determine what state
5102 that goes to, based on the state we popped back to and the rule
5103 number reduced by. */
5107 yystate
= yypgoto
[yyn
- YYNTOKENS
] + *yyssp
;
5108 if (0 <= yystate
&& yystate
<= YYLAST
&& yycheck
[yystate
] == *yyssp
)
5109 yystate
= yytable
[yystate
];
5111 yystate
= yydefgoto
[yyn
- YYNTOKENS
];
5116 /*------------------------------------.
5117 | yyerrlab -- here on detecting error |
5118 `------------------------------------*/
5120 /* If not already recovering from an error, report this error. */
5124 #if ! YYERROR_VERBOSE
5125 yyerror (&yylloc
, state
, YY_("syntax error"));
5128 YYSIZE_T yysize
= yysyntax_error (0, yystate
, yychar
);
5129 if (yymsg_alloc
< yysize
&& yymsg_alloc
< YYSTACK_ALLOC_MAXIMUM
)
5131 YYSIZE_T yyalloc
= 2 * yysize
;
5132 if (! (yysize
<= yyalloc
&& yyalloc
<= YYSTACK_ALLOC_MAXIMUM
))
5133 yyalloc
= YYSTACK_ALLOC_MAXIMUM
;
5134 if (yymsg
!= yymsgbuf
)
5135 YYSTACK_FREE (yymsg
);
5136 yymsg
= (char *) YYSTACK_ALLOC (yyalloc
);
5138 yymsg_alloc
= yyalloc
;
5142 yymsg_alloc
= sizeof yymsgbuf
;
5146 if (0 < yysize
&& yysize
<= yymsg_alloc
)
5148 (void) yysyntax_error (yymsg
, yystate
, yychar
);
5149 yyerror (&yylloc
, state
, yymsg
);
5153 yyerror (&yylloc
, state
, YY_("syntax error"));
5155 goto yyexhaustedlab
;
5161 yyerror_range
[1] = yylloc
;
5163 if (yyerrstatus
== 3)
5165 /* If just tried and failed to reuse lookahead token after an
5166 error, discard it. */
5168 if (yychar
<= YYEOF
)
5170 /* Return failure if at end of input. */
5171 if (yychar
== YYEOF
)
5176 yydestruct ("Error: discarding",
5177 yytoken
, &yylval
, &yylloc
, state
);
5182 /* Else will try to reuse lookahead token after shifting the error
5187 /*---------------------------------------------------.
5188 | yyerrorlab -- error raised explicitly by YYERROR. |
5189 `---------------------------------------------------*/
5192 /* Pacify compilers like GCC when the user code never invokes
5193 YYERROR and the label yyerrorlab therefore never appears in user
5195 if (/*CONSTCOND*/ 0)
5198 yyerror_range
[1] = yylsp
[1-yylen
];
5199 /* Do not reclaim the symbols of the rule which action triggered
5203 YY_STACK_PRINT (yyss
, yyssp
);
5208 /*-------------------------------------------------------------.
5209 | yyerrlab1 -- common code for both syntax error and YYERROR. |
5210 `-------------------------------------------------------------*/
5212 yyerrstatus
= 3; /* Each real token shifted decrements this. */
5216 yyn
= yypact
[yystate
];
5217 if (yyn
!= YYPACT_NINF
)
5220 if (0 <= yyn
&& yyn
<= YYLAST
&& yycheck
[yyn
] == YYTERROR
)
5228 /* Pop the current state because it cannot handle the error token. */
5232 yyerror_range
[1] = *yylsp
;
5233 yydestruct ("Error: popping",
5234 yystos
[yystate
], yyvsp
, yylsp
, state
);
5237 YY_STACK_PRINT (yyss
, yyssp
);
5242 yyerror_range
[2] = yylloc
;
5243 /* Using YYLLOC is tempting, but would change the location of
5244 the lookahead. YYLOC is available though. */
5245 YYLLOC_DEFAULT (yyloc
, yyerror_range
, 2);
5248 /* Shift the error token. */
5249 YY_SYMBOL_PRINT ("Shifting", yystos
[yyn
], yyvsp
, yylsp
);
5255 /*-------------------------------------.
5256 | yyacceptlab -- YYACCEPT comes here. |
5257 `-------------------------------------*/
5262 /*-----------------------------------.
5263 | yyabortlab -- YYABORT comes here. |
5264 `-----------------------------------*/
5269 #if !defined(yyoverflow) || YYERROR_VERBOSE
5270 /*-------------------------------------------------.
5271 | yyexhaustedlab -- memory exhaustion comes here. |
5272 `-------------------------------------------------*/
5274 yyerror (&yylloc
, state
, YY_("memory exhausted"));
5280 if (yychar
!= YYEMPTY
)
5281 yydestruct ("Cleanup: discarding lookahead",
5282 yytoken
, &yylval
, &yylloc
, state
);
5283 /* Do not reclaim the symbols of the rule which action triggered
5284 this YYABORT or YYACCEPT. */
5286 YY_STACK_PRINT (yyss
, yyssp
);
5287 while (yyssp
!= yyss
)
5289 yydestruct ("Cleanup: popping",
5290 yystos
[*yyssp
], yyvsp
, yylsp
, state
);
5295 YYSTACK_FREE (yyss
);
5298 if (yymsg
!= yymsgbuf
)
5299 YYSTACK_FREE (yymsg
);
5301 /* Make sure YYID is used. */
5302 return YYID (yyresult
);