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,
336 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
337 typedef union YYSTYPE
340 /* Line 214 of yacc.c */
341 #line 52 "glsl_parser.ypp"
348 struct ast_type_qualifier q
;
353 ast_type_specifier
*type_specifier
;
354 ast_fully_specified_type
*fully_specified_type
;
355 ast_function
*function
;
356 ast_parameter_declarator
*parameter_declarator
;
357 ast_function_definition
*function_definition
;
358 ast_compound_statement
*compound_statement
;
359 ast_expression
*expression
;
360 ast_declarator_list
*declarator_list
;
361 ast_struct_specifier
*struct_specifier
;
362 ast_declaration
*declaration
;
366 ast_expression
*rest
;
367 } for_rest_statement
;
370 ast_node
*then_statement
;
371 ast_node
*else_statement
;
372 } selection_rest_statement
;
376 /* Line 214 of yacc.c */
377 #line 378 "glsl_parser.cpp"
379 # define YYSTYPE_IS_TRIVIAL 1
380 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
381 # define YYSTYPE_IS_DECLARED 1
384 #if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED
385 typedef struct YYLTYPE
392 # define yyltype YYLTYPE /* obsolescent; will be withdrawn */
393 # define YYLTYPE_IS_DECLARED 1
394 # define YYLTYPE_IS_TRIVIAL 1
398 /* Copy the second part of user declarations. */
401 /* Line 264 of yacc.c */
402 #line 403 "glsl_parser.cpp"
409 typedef YYTYPE_UINT8 yytype_uint8
;
411 typedef unsigned char yytype_uint8
;
415 typedef YYTYPE_INT8 yytype_int8
;
416 #elif (defined __STDC__ || defined __C99__FUNC__ \
417 || defined __cplusplus || defined _MSC_VER)
418 typedef signed char yytype_int8
;
420 typedef short int yytype_int8
;
424 typedef YYTYPE_UINT16 yytype_uint16
;
426 typedef unsigned short int yytype_uint16
;
430 typedef YYTYPE_INT16 yytype_int16
;
432 typedef short int yytype_int16
;
436 # ifdef __SIZE_TYPE__
437 # define YYSIZE_T __SIZE_TYPE__
438 # elif defined size_t
439 # define YYSIZE_T size_t
440 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
441 || defined __cplusplus || defined _MSC_VER)
442 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
443 # define YYSIZE_T size_t
445 # define YYSIZE_T unsigned int
449 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
452 # if defined YYENABLE_NLS && YYENABLE_NLS
454 # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
455 # define YY_(msgid) dgettext ("bison-runtime", msgid)
459 # define YY_(msgid) msgid
463 /* Suppress unused-variable warnings by "using" E. */
464 #if ! defined lint || defined __GNUC__
465 # define YYUSE(e) ((void) (e))
467 # define YYUSE(e) /* empty */
470 /* Identity function, used to suppress warnings about constant conditions. */
474 #if (defined __STDC__ || defined __C99__FUNC__ \
475 || defined __cplusplus || defined _MSC_VER)
488 #if ! defined yyoverflow || YYERROR_VERBOSE
490 /* The parser invokes alloca or malloc; define the necessary symbols. */
492 # ifdef YYSTACK_USE_ALLOCA
493 # if YYSTACK_USE_ALLOCA
495 # define YYSTACK_ALLOC __builtin_alloca
496 # elif defined __BUILTIN_VA_ARG_INCR
497 # include <alloca.h> /* INFRINGES ON USER NAME SPACE */
499 # define YYSTACK_ALLOC __alloca
500 # elif defined _MSC_VER
501 # include <malloc.h> /* INFRINGES ON USER NAME SPACE */
502 # define alloca _alloca
504 # define YYSTACK_ALLOC alloca
505 # if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
506 || defined __cplusplus || defined _MSC_VER)
507 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
516 # ifdef YYSTACK_ALLOC
517 /* Pacify GCC's `empty if-body' warning. */
518 # define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
519 # ifndef YYSTACK_ALLOC_MAXIMUM
520 /* The OS might guarantee only one guard page at the bottom of the stack,
521 and a page size can be as small as 4096 bytes. So we cannot safely
522 invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
523 to allow for a few compiler-allocated temporary stack slots. */
524 # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
527 # define YYSTACK_ALLOC YYMALLOC
528 # define YYSTACK_FREE YYFREE
529 # ifndef YYSTACK_ALLOC_MAXIMUM
530 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
532 # if (defined __cplusplus && ! defined _STDLIB_H \
533 && ! ((defined YYMALLOC || defined malloc) \
534 && (defined YYFREE || defined free)))
535 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
541 # define YYMALLOC malloc
542 # if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
543 || defined __cplusplus || defined _MSC_VER)
544 void *malloc (YYSIZE_T
); /* INFRINGES ON USER NAME SPACE */
549 # if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
550 || defined __cplusplus || defined _MSC_VER)
551 void free (void *); /* INFRINGES ON USER NAME SPACE */
555 #endif /* ! defined yyoverflow || YYERROR_VERBOSE */
558 #if (! defined yyoverflow \
559 && (! defined __cplusplus \
560 || (defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL \
561 && defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
563 /* A type that is properly aligned for any stack member. */
566 yytype_int16 yyss_alloc
;
571 /* The size of the maximum gap between one aligned stack and the next. */
572 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
574 /* The size of an array large to enough to hold all stacks, each with
576 # define YYSTACK_BYTES(N) \
577 ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \
578 + 2 * YYSTACK_GAP_MAXIMUM)
580 /* Copy COUNT objects from FROM to TO. The source and destination do
583 # if defined __GNUC__ && 1 < __GNUC__
584 # define YYCOPY(To, From, Count) \
585 __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
587 # define YYCOPY(To, From, Count) \
591 for (yyi = 0; yyi < (Count); yyi++) \
592 (To)[yyi] = (From)[yyi]; \
598 /* Relocate STACK from its old location to the new one. The
599 local variables YYSIZE and YYSTACKSIZE give the old and new number of
600 elements in the stack, and YYPTR gives the new location of the
601 stack. Advance YYPTR to a properly aligned location for the next
603 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \
606 YYSIZE_T yynewbytes; \
607 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
608 Stack = &yyptr->Stack_alloc; \
609 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
610 yyptr += yynewbytes / sizeof (*yyptr); \
616 /* YYFINAL -- State number of the termination state. */
618 /* YYLAST -- Last index in YYTABLE. */
621 /* YYNTOKENS -- Number of terminals. */
622 #define YYNTOKENS 215
623 /* YYNNTS -- Number of nonterminals. */
625 /* YYNRULES -- Number of rules. */
627 /* YYNRULES -- Number of states. */
628 #define YYNSTATES 409
630 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
632 #define YYMAXUTOK 445
634 #define YYTRANSLATE(YYX) \
635 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
637 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
638 static const yytype_uint8 yytranslate
[] =
640 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
641 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
642 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
643 2, 2, 2, 199, 2, 2, 2, 203, 206, 2,
644 191, 192, 201, 197, 196, 198, 195, 202, 2, 2,
645 2, 2, 2, 2, 2, 2, 2, 2, 210, 212,
646 204, 211, 205, 209, 2, 2, 2, 2, 2, 2,
647 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
648 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
649 2, 193, 2, 194, 207, 2, 2, 2, 2, 2,
650 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
651 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
652 2, 2, 2, 213, 208, 214, 200, 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, 2, 2, 2, 2,
665 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
666 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
667 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
668 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
669 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
670 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
671 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
672 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
673 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
674 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
675 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
676 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
677 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
678 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
679 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
680 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
681 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
682 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
683 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
684 185, 186, 187, 188, 189, 190
688 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
690 static const yytype_uint16 yyprhs
[] =
692 0, 0, 3, 4, 9, 10, 14, 17, 20, 23,
693 26, 27, 30, 36, 38, 41, 43, 45, 47, 49,
694 51, 53, 57, 59, 64, 66, 70, 73, 76, 78,
695 80, 82, 86, 89, 92, 95, 97, 100, 104, 107,
696 109, 111, 113, 115, 118, 121, 124, 126, 128, 130,
697 132, 134, 138, 142, 146, 148, 152, 156, 158, 162,
698 166, 168, 172, 176, 180, 184, 186, 190, 194, 196,
699 200, 202, 206, 208, 212, 214, 218, 220, 224, 226,
700 230, 232, 238, 240, 244, 246, 248, 250, 252, 254,
701 256, 258, 260, 262, 264, 266, 268, 272, 274, 277,
702 280, 285, 288, 290, 292, 295, 299, 303, 306, 312,
703 316, 319, 323, 326, 327, 329, 331, 333, 335, 337,
704 341, 347, 354, 362, 371, 377, 379, 382, 387, 393,
705 400, 408, 413, 416, 418, 421, 422, 424, 429, 431,
706 435, 437, 439, 441, 443, 445, 447, 450, 453, 455,
707 457, 460, 463, 466, 468, 471, 474, 476, 478, 481,
708 483, 487, 492, 494, 496, 498, 500, 502, 504, 506,
709 508, 510, 512, 514, 516, 518, 520, 522, 524, 526,
710 528, 530, 532, 534, 536, 538, 540, 542, 544, 546,
711 548, 550, 552, 554, 556, 558, 560, 562, 564, 566,
712 568, 570, 572, 574, 576, 578, 580, 582, 584, 586,
713 588, 590, 592, 594, 596, 598, 600, 602, 604, 606,
714 612, 617, 619, 622, 626, 628, 632, 634, 639, 641,
715 643, 645, 647, 649, 651, 653, 655, 657, 659, 661,
716 664, 668, 670, 672, 675, 679, 681, 684, 686, 689,
717 695, 699, 701, 703, 708, 714, 718, 721, 727, 735,
718 742, 744, 746, 748, 749, 752, 756, 759, 762, 765,
719 769, 772, 774, 776, 778
722 /* YYRHS -- A `-1'-separated list of the rules' RHS. */
723 static const yytype_int16 yyrhs
[] =
725 216, 0, -1, -1, 218, 220, 217, 222, -1, -1,
726 109, 78, 113, -1, 116, 113, -1, 117, 113, -1,
727 118, 113, -1, 119, 113, -1, -1, 220, 221, -1,
728 110, 76, 112, 76, 113, -1, 301, -1, 222, 301,
729 -1, 76, -1, 223, -1, 78, -1, 79, -1, 77,
730 -1, 80, -1, 191, 250, 192, -1, 224, -1, 225,
731 193, 226, 194, -1, 227, -1, 225, 195, 76, -1,
732 225, 84, -1, 225, 85, -1, 250, -1, 228, -1,
733 229, -1, 225, 195, 229, -1, 231, 192, -1, 230,
734 192, -1, 232, 74, -1, 232, -1, 232, 248, -1,
735 231, 196, 248, -1, 233, 191, -1, 272, -1, 76,
736 -1, 81, -1, 225, -1, 84, 234, -1, 85, 234,
737 -1, 235, 234, -1, 197, -1, 198, -1, 199, -1,
738 200, -1, 234, -1, 236, 201, 234, -1, 236, 202,
739 234, -1, 236, 203, 234, -1, 236, -1, 237, 197,
740 236, -1, 237, 198, 236, -1, 237, -1, 238, 82,
741 237, -1, 238, 83, 237, -1, 238, -1, 239, 204,
742 238, -1, 239, 205, 238, -1, 239, 86, 238, -1,
743 239, 87, 238, -1, 239, -1, 240, 88, 239, -1,
744 240, 89, 239, -1, 240, -1, 241, 206, 240, -1,
745 241, -1, 242, 207, 241, -1, 242, -1, 243, 208,
746 242, -1, 243, -1, 244, 90, 243, -1, 244, -1,
747 245, 92, 244, -1, 245, -1, 246, 91, 245, -1,
748 246, -1, 246, 209, 250, 210, 248, -1, 247, -1,
749 234, 249, 248, -1, 211, -1, 93, -1, 94, -1,
750 96, -1, 95, -1, 102, -1, 97, -1, 98, -1,
751 99, -1, 100, -1, 101, -1, 248, -1, 250, 196,
752 248, -1, 247, -1, 253, 212, -1, 261, 212, -1,
753 108, 276, 273, 212, -1, 254, 192, -1, 256, -1,
754 255, -1, 256, 258, -1, 255, 196, 258, -1, 263,
755 76, 191, -1, 272, 76, -1, 272, 76, 193, 251,
756 194, -1, 269, 259, 257, -1, 259, 257, -1, 269,
757 259, 260, -1, 259, 260, -1, -1, 33, -1, 34,
758 -1, 35, -1, 272, -1, 262, -1, 261, 196, 76,
759 -1, 261, 196, 76, 193, 194, -1, 261, 196, 76,
760 193, 251, 194, -1, 261, 196, 76, 193, 194, 211,
761 282, -1, 261, 196, 76, 193, 251, 194, 211, 282,
762 -1, 261, 196, 76, 211, 282, -1, 263, -1, 263,
763 76, -1, 263, 76, 193, 194, -1, 263, 76, 193,
764 251, 194, -1, 263, 76, 193, 194, 211, 282, -1,
765 263, 76, 193, 251, 194, 211, 282, -1, 263, 76,
766 211, 282, -1, 103, 76, -1, 272, -1, 270, 272,
767 -1, -1, 265, -1, 120, 191, 266, 192, -1, 267,
768 -1, 266, 196, 267, -1, 76, -1, 40, -1, 39,
769 -1, 38, -1, 4, -1, 271, -1, 268, 270, -1,
770 103, 270, -1, 4, -1, 3, -1, 264, 37, -1,
771 32, 37, -1, 264, 33, -1, 34, -1, 32, 33,
772 -1, 32, 34, -1, 36, -1, 273, -1, 276, 273,
773 -1, 274, -1, 274, 193, 194, -1, 274, 193, 251,
774 194, -1, 275, -1, 277, -1, 76, -1, 74, -1,
775 6, -1, 7, -1, 8, -1, 5, -1, 29, -1,
776 30, -1, 31, -1, 20, -1, 21, -1, 22, -1,
777 23, -1, 24, -1, 25, -1, 26, -1, 27, -1,
778 28, -1, 41, -1, 42, -1, 43, -1, 44, -1,
779 45, -1, 46, -1, 47, -1, 48, -1, 49, -1,
780 50, -1, 51, -1, 154, -1, 52, -1, 53, -1,
781 54, -1, 55, -1, 156, -1, 56, -1, 57, -1,
782 58, -1, 59, -1, 60, -1, 61, -1, 62, -1,
783 63, -1, 64, -1, 65, -1, 66, -1, 67, -1,
784 68, -1, 69, -1, 70, -1, 71, -1, 72, -1,
785 106, -1, 105, -1, 104, -1, 73, 76, 213, 278,
786 214, -1, 73, 213, 278, 214, -1, 279, -1, 278,
787 279, -1, 272, 280, 212, -1, 281, -1, 280, 196,
788 281, -1, 76, -1, 76, 193, 251, 194, -1, 248,
789 -1, 252, -1, 286, -1, 285, -1, 283, -1, 290,
790 -1, 291, -1, 294, -1, 295, -1, 296, -1, 300,
791 -1, 213, 214, -1, 213, 289, 214, -1, 288, -1,
792 285, -1, 213, 214, -1, 213, 289, 214, -1, 284,
793 -1, 289, 284, -1, 212, -1, 250, 212, -1, 14,
794 191, 250, 192, 292, -1, 284, 12, 284, -1, 284,
795 -1, 250, -1, 263, 76, 211, 282, -1, 17, 191,
796 250, 192, 286, -1, 18, 250, 210, -1, 19, 210,
797 -1, 75, 191, 293, 192, 287, -1, 11, 284, 75,
798 191, 250, 192, 212, -1, 13, 191, 297, 299, 192,
799 287, -1, 290, -1, 283, -1, 293, -1, -1, 298,
800 212, -1, 298, 212, 250, -1, 10, 212, -1, 9,
801 212, -1, 16, 212, -1, 16, 250, 212, -1, 15,
802 212, -1, 302, -1, 252, -1, 219, -1, 253, 288,
806 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
807 static const yytype_uint16 yyrline
[] =
809 0, 214, 214, 213, 220, 222, 242, 243, 244, 245,
810 248, 250, 254, 263, 271, 282, 286, 293, 300, 307,
811 314, 321, 328, 329, 335, 339, 346, 352, 361, 365,
812 369, 370, 379, 380, 384, 385, 389, 395, 407, 411,
813 417, 424, 435, 436, 442, 448, 458, 459, 460, 461,
814 465, 466, 472, 478, 487, 488, 494, 503, 504, 510,
815 519, 520, 526, 532, 538, 547, 548, 554, 563, 564,
816 573, 574, 583, 584, 593, 594, 603, 604, 613, 614,
817 623, 624, 633, 634, 643, 644, 645, 646, 647, 648,
818 649, 650, 651, 652, 653, 657, 661, 677, 681, 685,
819 689, 703, 707, 708, 712, 717, 725, 736, 746, 761,
820 768, 773, 784, 796, 797, 798, 799, 803, 807, 808,
821 817, 826, 835, 844, 853, 866, 877, 886, 895, 904,
822 913, 922, 931, 945, 952, 963, 964, 968, 975, 976,
823 983, 1017, 1018, 1019, 1023, 1027, 1028, 1032, 1040, 1041,
824 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1052, 1053, 1061,
825 1062, 1068, 1077, 1083, 1089, 1098, 1099, 1100, 1101, 1102,
826 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112,
827 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122,
828 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132,
829 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142,
830 1143, 1144, 1145, 1146, 1147, 1148, 1152, 1163, 1174, 1188,
831 1194, 1203, 1208, 1216, 1231, 1236, 1244, 1250, 1259, 1263,
832 1269, 1270, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1284,
833 1290, 1299, 1300, 1304, 1310, 1319, 1329, 1341, 1347, 1356,
834 1365, 1370, 1378, 1382, 1396, 1400, 1401, 1405, 1412, 1419,
835 1429, 1430, 1434, 1436, 1442, 1447, 1456, 1462, 1468, 1474,
836 1480, 1489, 1490, 1491, 1495
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 "ROW_MAJOR", "'('", "')'", "'['", "']'", "'.'", "','", "'+'", "'-'",
881 "'!'", "'~'", "'*'", "'/'", "'%'", "'<'", "'>'", "'&'", "'^'", "'|'",
882 "'?'", "':'", "'='", "';'", "'{'", "'}'", "$accept", "translation_unit",
883 "$@1", "version_statement", "pragma_statement",
884 "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 "opt_layout_qualifier", "layout_qualifier", "layout_qualifier_id_list",
903 "layout_qualifier_id", "interpolation_qualifier",
904 "parameter_type_qualifier", "type_qualifier", "storage_qualifier",
905 "type_specifier", "type_specifier_no_prec", "type_specifier_nonarray",
906 "basic_type_specifier_nonarray", "precision_qualifier",
907 "struct_specifier", "struct_declaration_list", "struct_declaration",
908 "struct_declarator_list", "struct_declarator", "initializer",
909 "declaration_statement", "statement", "simple_statement",
910 "compound_statement", "statement_no_new_scope",
911 "compound_statement_no_new_scope", "statement_list",
912 "expression_statement", "selection_statement",
913 "selection_rest_statement", "condition", "switch_statement",
914 "case_label", "iteration_statement", "for_init_statement",
915 "conditionopt", "for_rest_statement", "jump_statement",
916 "external_declaration", "function_definition", 0
921 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
923 static const yytype_uint16 yytoknum
[] =
925 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
926 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
927 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
928 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
929 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
930 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
931 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
932 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
933 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
934 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
935 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
936 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
937 375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
938 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
939 395, 396, 397, 398, 399, 400, 401, 402, 403, 404,
940 405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
941 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
942 425, 426, 427, 428, 429, 430, 431, 432, 433, 434,
943 435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
944 445, 40, 41, 91, 93, 46, 44, 43, 45, 33,
945 126, 42, 47, 37, 60, 62, 38, 94, 124, 63,
950 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
951 static const yytype_uint16 yyr1
[] =
953 0, 215, 217, 216, 218, 218, 219, 219, 219, 219,
954 220, 220, 221, 222, 222, 223, 224, 224, 224, 224,
955 224, 224, 225, 225, 225, 225, 225, 225, 226, 227,
956 228, 228, 229, 229, 230, 230, 231, 231, 232, 233,
957 233, 233, 234, 234, 234, 234, 235, 235, 235, 235,
958 236, 236, 236, 236, 237, 237, 237, 238, 238, 238,
959 239, 239, 239, 239, 239, 240, 240, 240, 241, 241,
960 242, 242, 243, 243, 244, 244, 245, 245, 246, 246,
961 247, 247, 248, 248, 249, 249, 249, 249, 249, 249,
962 249, 249, 249, 249, 249, 250, 250, 251, 252, 252,
963 252, 253, 254, 254, 255, 255, 256, 257, 257, 258,
964 258, 258, 258, 259, 259, 259, 259, 260, 261, 261,
965 261, 261, 261, 261, 261, 262, 262, 262, 262, 262,
966 262, 262, 262, 263, 263, 264, 264, 265, 266, 266,
967 267, 268, 268, 268, 269, 270, 270, 270, 271, 271,
968 271, 271, 271, 271, 271, 271, 271, 272, 272, 273,
969 273, 273, 274, 274, 274, 275, 275, 275, 275, 275,
970 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
971 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
972 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
973 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
974 275, 275, 275, 275, 275, 275, 276, 276, 276, 277,
975 277, 278, 278, 279, 280, 280, 281, 281, 282, 283,
976 284, 284, 285, 285, 285, 285, 285, 285, 285, 286,
977 286, 287, 287, 288, 288, 289, 289, 290, 290, 291,
978 292, 292, 293, 293, 294, 295, 295, 296, 296, 296,
979 297, 297, 298, 298, 299, 299, 300, 300, 300, 300,
980 300, 301, 301, 301, 302
983 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
984 static const yytype_uint8 yyr2
[] =
986 0, 2, 0, 4, 0, 3, 2, 2, 2, 2,
987 0, 2, 5, 1, 2, 1, 1, 1, 1, 1,
988 1, 3, 1, 4, 1, 3, 2, 2, 1, 1,
989 1, 3, 2, 2, 2, 1, 2, 3, 2, 1,
990 1, 1, 1, 2, 2, 2, 1, 1, 1, 1,
991 1, 3, 3, 3, 1, 3, 3, 1, 3, 3,
992 1, 3, 3, 3, 3, 1, 3, 3, 1, 3,
993 1, 3, 1, 3, 1, 3, 1, 3, 1, 3,
994 1, 5, 1, 3, 1, 1, 1, 1, 1, 1,
995 1, 1, 1, 1, 1, 1, 3, 1, 2, 2,
996 4, 2, 1, 1, 2, 3, 3, 2, 5, 3,
997 2, 3, 2, 0, 1, 1, 1, 1, 1, 3,
998 5, 6, 7, 8, 5, 1, 2, 4, 5, 6,
999 7, 4, 2, 1, 2, 0, 1, 4, 1, 3,
1000 1, 1, 1, 1, 1, 1, 2, 2, 1, 1,
1001 2, 2, 2, 1, 2, 2, 1, 1, 2, 1,
1002 3, 4, 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, 1, 1, 1, 1, 1, 1, 5,
1008 4, 1, 2, 3, 1, 3, 1, 4, 1, 1,
1009 1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
1010 3, 1, 1, 2, 3, 1, 2, 1, 2, 5,
1011 3, 1, 1, 4, 5, 3, 2, 5, 7, 6,
1012 1, 1, 1, 0, 2, 3, 2, 2, 2, 3,
1016 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
1017 STATE-NUM when YYTABLE doesn't specify something else to do. Zero
1018 means the default is an error. */
1019 static const yytype_uint16 yydefact
[] =
1021 4, 0, 0, 10, 0, 1, 2, 5, 0, 135,
1022 11, 0, 149, 148, 169, 166, 167, 168, 173, 174,
1023 175, 176, 177, 178, 179, 180, 181, 170, 171, 172,
1024 0, 153, 156, 143, 142, 141, 182, 183, 184, 185,
1025 186, 187, 188, 189, 190, 191, 192, 194, 195, 196,
1026 197, 199, 200, 201, 202, 203, 204, 205, 206, 207,
1027 208, 209, 210, 211, 212, 213, 214, 215, 0, 165,
1028 164, 135, 218, 217, 216, 0, 0, 0, 0, 0,
1029 0, 193, 198, 273, 135, 272, 0, 0, 103, 113,
1030 0, 118, 125, 0, 136, 135, 0, 145, 133, 157,
1031 159, 162, 0, 163, 13, 271, 0, 154, 155, 151,
1032 0, 0, 132, 135, 147, 0, 6, 7, 8, 9,
1033 0, 14, 98, 135, 274, 101, 113, 144, 114, 115,
1034 116, 104, 0, 113, 0, 99, 126, 152, 150, 146,
1035 134, 0, 158, 0, 0, 0, 0, 221, 0, 140,
1036 0, 138, 0, 0, 135, 0, 0, 0, 0, 0,
1037 0, 0, 0, 15, 19, 17, 18, 20, 41, 0,
1038 0, 0, 46, 47, 48, 49, 247, 135, 243, 16,
1039 22, 42, 24, 29, 30, 0, 0, 35, 0, 50,
1040 0, 54, 57, 60, 65, 68, 70, 72, 74, 76,
1041 78, 80, 82, 95, 0, 229, 0, 133, 232, 245,
1042 231, 230, 135, 233, 234, 235, 236, 237, 238, 105,
1043 110, 112, 117, 0, 119, 106, 0, 0, 160, 50,
1044 97, 0, 39, 12, 0, 226, 0, 224, 220, 222,
1045 100, 137, 0, 267, 266, 0, 135, 0, 270, 268,
1046 0, 0, 0, 256, 135, 43, 44, 0, 239, 135,
1047 26, 27, 0, 0, 33, 32, 0, 165, 36, 38,
1048 85, 86, 88, 87, 90, 91, 92, 93, 94, 89,
1049 84, 0, 45, 0, 0, 0, 0, 0, 0, 0,
1050 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1051 0, 0, 0, 0, 248, 244, 246, 107, 109, 111,
1052 0, 0, 127, 0, 228, 131, 161, 219, 0, 0,
1053 223, 139, 0, 261, 260, 135, 0, 269, 0, 255,
1054 252, 0, 0, 21, 240, 0, 28, 25, 31, 37,
1055 83, 51, 52, 53, 55, 56, 58, 59, 63, 64,
1056 61, 62, 66, 67, 69, 71, 73, 75, 77, 79,
1057 0, 96, 0, 120, 0, 124, 0, 128, 0, 225,
1058 0, 262, 0, 0, 135, 0, 0, 135, 23, 0,
1059 0, 0, 121, 129, 0, 227, 0, 264, 135, 251,
1060 249, 254, 0, 242, 257, 241, 81, 108, 122, 0,
1061 130, 0, 265, 259, 135, 253, 123, 258, 250
1064 /* YYDEFGOTO[NTERM-NUM]. */
1065 static const yytype_int16 yydefgoto
[] =
1067 -1, 2, 9, 3, 83, 6, 10, 84, 179, 180,
1068 181, 335, 182, 183, 184, 185, 186, 187, 188, 189,
1069 190, 191, 192, 193, 194, 195, 196, 197, 198, 199,
1070 200, 201, 202, 203, 281, 204, 231, 205, 206, 87,
1071 88, 89, 220, 131, 132, 221, 90, 91, 92, 93,
1072 94, 150, 151, 95, 133, 96, 97, 232, 99, 100,
1073 101, 102, 103, 146, 147, 236, 237, 315, 208, 209,
1074 210, 211, 394, 395, 212, 213, 214, 390, 332, 215,
1075 216, 217, 325, 372, 373, 218, 104, 105
1078 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1080 #define YYPACT_NINF -329
1081 static const yytype_int16 yypact
[] =
1083 -58, -22, 72, -329, -28, -329, -15, -329, 22, 3589,
1084 -329, -4, -329, -329, -329, -329, -329, -329, -329, -329,
1085 -329, -329, -329, -329, -329, -329, -329, -329, -329, -329,
1086 44, -329, -329, -329, -329, -329, -329, -329, -329, -329,
1087 -329, -329, -329, -329, -329, -329, -329, -329, -329, -329,
1088 -329, -329, -329, -329, -329, -329, -329, -329, -329, -329,
1089 -329, -329, -329, -329, -329, -329, -329, -329, -72, -329,
1090 -329, 6, -329, -329, -329, 14, -8, 9, 11, 26,
1091 -64, -329, -329, -329, 3470, -329, -159, -23, -12, -2,
1092 -149, -329, 105, 57, -329, 140, 3777, -329, -329, -329,
1093 15, -329, 3849, -329, -329, -329, 131, -329, -329, -329,
1094 -3, 3777, -329, 140, -329, 3849, -329, -329, -329, -329,
1095 133, -329, -329, 383, -329, -329, 32, -329, -329, -329,
1096 -329, -329, 3777, 158, 135, -329, -150, -329, -329, -329,
1097 -329, 2565, -329, 100, 3777, 141, 1954, -329, 4, -329,
1098 -95, -329, 7, 8, 1231, 27, 31, 12, 2186, 37,
1099 3108, 13, 39, -59, -329, -329, -329, -329, -329, 3108,
1100 3108, 3108, -329, -329, -329, -329, -329, 595, -329, -329,
1101 -329, -55, -329, -329, -329, 41, -92, 3289, 40, -75,
1102 3108, -7, -118, 51, -74, 109, 28, 29, 30, 145,
1103 147, -84, -329, -329, -148, -329, 34, 49, -329, -329,
1104 -329, -329, 807, -329, -329, -329, -329, -329, -329, -329,
1105 -329, -329, 166, 3777, -143, -329, 2746, 3108, -329, -329,
1106 -329, 53, -329, -329, 2070, 55, -139, -329, -329, -329,
1107 -329, -329, 133, -329, -329, 174, 1640, 3108, -329, -329,
1108 -138, 3108, -134, -329, 2384, -329, -329, -81, -329, 1019,
1109 -329, -329, 3108, 3705, -329, -329, 3108, 61, -329, -329,
1110 -329, -329, -329, -329, -329, -329, -329, -329, -329, -329,
1111 -329, 3108, -329, 3108, 3108, 3108, 3108, 3108, 3108, 3108,
1112 3108, 3108, 3108, 3108, 3108, 3108, 3108, 3108, 3108, 3108,
1113 3108, 3108, 3108, 3108, -329, -329, -329, 62, -329, -329,
1114 2927, 3108, 43, 63, -329, -329, -329, -329, 3108, 141,
1115 -329, -329, 65, -329, -329, 1838, -80, -329, -79, -329,
1116 66, 182, 69, -329, -329, 70, 66, 74, -329, -329,
1117 -329, -329, -329, -329, -7, -7, -118, -118, 51, 51,
1118 51, 51, -74, -74, 109, 28, 29, 30, 145, 147,
1119 -127, -329, 3108, 52, 75, -329, 3108, 59, 77, -329,
1120 3108, -329, 54, 76, 1231, 60, 64, 1442, -329, 3108,
1121 78, 3108, 67, -329, 3108, -329, -50, 3108, 1442, 262,
1122 -329, -329, 3108, -329, -329, -329, -329, -329, -329, 3108,
1123 -329, 71, 66, -329, 1231, -329, -329, -329, -329
1126 /* YYPGOTO[NTERM-NUM]. */
1127 static const yytype_int16 yypgoto
[] =
1129 -329, -329, -329, -329, -329, -329, -329, -329, -329, -329,
1130 -329, -329, -329, -329, 16, -329, -329, -329, -329, -135,
1131 -329, -87, -83, -104, -93, -20, -16, -21, -13, -11,
1132 -17, -329, -133, -99, -329, -155, -189, 2, 5, -329,
1133 -329, -329, 68, 161, 155, 73, -329, -329, -215, -329,
1134 -329, -329, 48, -329, -329, -43, -329, -9, -31, -329,
1135 -329, 217, -329, 150, -131, -329, -24, -140, 56, -153,
1136 -328, -78, -90, 213, 124, 58, -329, -329, -19, -329,
1137 -329, -329, -329, -329, -329, -329, 219, -329
1140 /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
1141 positive, shift that token. If negative, reduce the rule which
1142 number is the opposite. If zero, do what YYDEFACT says.
1143 If YYTABLE_NINF, syntax error. */
1144 #define YYTABLE_NINF -264
1145 static const yytype_int16 yytable
[] =
1147 98, 245, 127, 250, 110, 252, 229, 301, 230, 12,
1148 13, 85, 290, 291, 86, 239, 257, -164, 270, 271,
1149 272, 273, 274, 275, 276, 277, 278, 279, 114, 260,
1150 261, 128, 129, 130, 255, 256, 127, 313, 30, 331,
1151 31, 225, 32, 226, 33, 34, 35, 134, 303, 393,
1152 310, 1, 139, 122, 123, 282, 4, 319, 303, 306,
1153 393, 227, 303, 135, 304, 128, 129, 130, 311, 303,
1154 114, 142, 5, 320, 327, 98, 329, 107, 108, 286,
1155 287, 109, 112, 379, 148, 7, 85, 140, 268, 86,
1156 137, 229, 326, 230, 138, 8, 328, 241, 11, 330,
1157 265, 242, 145, 239, 266, 116, 306, 336, 106, 113,
1158 331, 333, 374, 375, 207, 303, 303, 303, 72, 73,
1159 74, 364, 117, 222, 118, 302, 80, 120, 314, 368,
1160 292, 293, -40, 288, 289, 145, 280, 145, 262, 119,
1161 263, 111, 401, 12, 13, 207, 303, 360, 341, 342,
1162 343, 229, 229, 229, 229, 229, 229, 229, 229, 229,
1163 229, 229, 229, 229, 229, 229, 229, 339, 207, 125,
1164 330, 365, 30, 380, 31, 229, 32, 230, 33, 34,
1165 35, 136, 340, 229, 126, 230, 348, 349, 350, 351,
1166 -102, 128, 129, 130, 283, 284, 285, 294, 295, 344,
1167 345, 352, 353, 207, 361, 346, 347, 143, 141, 149,
1168 144, 224, 314, 233, 222, 386, 240, 235, 246, 243,
1169 244, 389, 247, 253, 248, 145, 383, 229, 251, 230,
1170 254, 269, 402, 264, 296, 299, 297, 207, 298, 300,
1171 -39, 398, 307, 113, 400, 207, 122, 316, 318, 322,
1172 207, 408, 405, -34, 366, 362, 370, 367, 376, 406,
1173 80, 377, 303, 381, 378, -40, 387, 314, 388, 382,
1174 384, 385, 397, 177, 404, 392, 354, 356, 399, 338,
1175 396, 355, 314, 407, 359, 314, 357, 219, 223, 358,
1176 321, 308, 115, 314, 234, 369, 309, 391, 403, 124,
1177 314, 259, 323, 121, 324, 0, 371, 0, 0, 0,
1178 0, 0, 0, 0, 0, 0, 207, 0, 0, 0,
1179 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
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, 207, 0, 0, 207, 0,
1184 0, 0, 0, 0, 0, 0, 0, 0, 0, 207,
1185 0, 0, 0, 0, 0, 0, 12, 13, 14, 15,
1186 16, 17, 152, 153, 154, 207, 155, 156, 157, 158,
1187 159, 160, 161, 18, 19, 20, 21, 22, 23, 24,
1188 25, 26, 27, 28, 29, 30, 0, 31, 0, 32,
1189 0, 33, 34, 35, 36, 37, 38, 39, 40, 41,
1190 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1191 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1192 62, 63, 64, 65, 66, 67, 68, 69, 162, 163,
1193 164, 165, 166, 167, 168, 0, 0, 169, 170, 0,
1194 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1195 0, 0, 0, 0, 0, 0, 71, 72, 73, 74,
1196 0, 75, 0, 0, 0, 0, 0, 0, 0, 0,
1197 0, 0, 0, 80, 0, 0, 0, 0, 0, 0,
1198 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1199 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1200 0, 0, 0, 0, 0, 0, 0, 81, 0, 82,
1201 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1202 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1203 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1204 0, 0, 0, 0, 171, 0, 0, 0, 0, 0,
1205 172, 173, 174, 175, 0, 0, 0, 0, 0, 0,
1206 0, 0, 0, 0, 0, 176, 177, 178, 12, 13,
1207 14, 15, 16, 17, 152, 153, 154, 0, 155, 156,
1208 157, 158, 159, 160, 161, 18, 19, 20, 21, 22,
1209 23, 24, 25, 26, 27, 28, 29, 30, 0, 31,
1210 0, 32, 0, 33, 34, 35, 36, 37, 38, 39,
1211 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1212 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1213 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1214 162, 163, 164, 165, 166, 167, 168, 0, 0, 169,
1215 170, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1216 0, 0, 0, 0, 0, 0, 0, 0, 71, 72,
1217 73, 74, 0, 75, 0, 0, 0, 0, 0, 0,
1218 0, 0, 0, 0, 0, 80, 0, 0, 0, 0,
1219 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1220 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1221 0, 0, 0, 0, 0, 0, 0, 0, 0, 81,
1222 0, 82, 0, 0, 0, 0, 0, 0, 0, 0,
1223 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1224 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1225 0, 0, 0, 0, 0, 0, 171, 0, 0, 0,
1226 0, 0, 172, 173, 174, 175, 0, 0, 0, 0,
1227 0, 0, 0, 0, 0, 0, 0, 176, 177, 258,
1228 12, 13, 14, 15, 16, 17, 152, 153, 154, 0,
1229 155, 156, 157, 158, 159, 160, 161, 18, 19, 20,
1230 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
1231 0, 31, 0, 32, 0, 33, 34, 35, 36, 37,
1232 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1233 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1234 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1235 68, 69, 162, 163, 164, 165, 166, 167, 168, 0,
1236 0, 169, 170, 0, 0, 0, 0, 0, 0, 0,
1237 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1238 71, 72, 73, 74, 0, 75, 0, 0, 0, 0,
1239 0, 0, 0, 0, 0, 0, 0, 80, 0, 0,
1240 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1241 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1242 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1243 0, 81, 0, 82, 0, 0, 0, 0, 0, 0,
1244 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1245 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1246 0, 0, 0, 0, 0, 0, 0, 0, 171, 0,
1247 0, 0, 0, 0, 172, 173, 174, 175, 0, 0,
1248 0, 0, 0, 0, 0, 0, 0, 0, 0, 176,
1249 177, 305, 12, 13, 14, 15, 16, 17, 152, 153,
1250 154, 0, 155, 156, 157, 158, 159, 160, 161, 18,
1251 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1252 29, 30, 0, 31, 0, 32, 0, 33, 34, 35,
1253 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
1254 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1255 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1256 66, 67, 68, 69, 162, 163, 164, 165, 166, 167,
1257 168, 0, 0, 169, 170, 0, 0, 0, 0, 0,
1258 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1259 0, 0, 71, 72, 73, 74, 0, 75, 0, 0,
1260 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,
1261 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1262 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1263 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1264 0, 0, 0, 81, 0, 82, 0, 0, 0, 0,
1265 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1266 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1267 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1268 171, 0, 0, 0, 0, 0, 172, 173, 174, 175,
1269 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1270 0, 176, 177, 334, 12, 13, 14, 15, 16, 17,
1271 152, 153, 154, 0, 155, 156, 157, 158, 159, 160,
1272 161, 18, 19, 20, 21, 22, 23, 24, 25, 26,
1273 27, 28, 29, 30, 0, 31, 0, 32, 0, 33,
1274 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
1275 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1276 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1277 64, 65, 66, 67, 68, 69, 162, 163, 164, 165,
1278 166, 167, 168, 0, 0, 169, 170, 0, 0, 0,
1279 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1280 0, 0, 0, 0, 71, 72, 73, 74, 0, 75,
1281 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1282 0, 80, 0, 0, 0, 0, 0, 0, 0, 0,
1283 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1284 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1285 0, 0, 0, 0, 0, 81, 0, 82, 0, 0,
1286 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1287 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1288 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1289 0, 0, 171, 0, 0, 0, 0, 0, 172, 173,
1290 174, 175, 0, 0, 0, 0, 0, 0, 0, 0,
1291 0, 0, 0, 176, 177, 12, 13, 14, 15, 16,
1292 17, 152, 153, 154, 0, 155, 156, 157, 158, 159,
1293 160, 161, 18, 19, 20, 21, 22, 23, 24, 25,
1294 26, 27, 28, 29, 30, 0, 31, 0, 32, 0,
1295 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
1296 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1297 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1298 63, 64, 65, 66, 67, 68, 69, 162, 163, 164,
1299 165, 166, 167, 168, 0, 0, 169, 170, 0, 0,
1300 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1301 0, 0, 0, 0, 0, 71, 72, 73, 74, 0,
1302 75, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1303 0, 0, 80, 0, 0, 0, 0, 0, 0, 0,
1304 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1305 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1306 0, 0, 0, 0, 0, 0, 81, 0, 82, 0,
1307 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1308 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1309 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1310 0, 0, 0, 171, 0, 0, 0, 0, 0, 172,
1311 173, 174, 175, 12, 13, 14, 15, 16, 17, 0,
1312 0, 0, 0, 0, 176, 123, 0, 0, 0, 0,
1313 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
1314 28, 29, 30, 0, 31, 0, 32, 0, 33, 34,
1315 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1316 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1317 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1318 65, 66, 67, 68, 69, 0, 163, 164, 165, 166,
1319 167, 168, 0, 0, 169, 170, 0, 0, 0, 0,
1320 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1321 0, 0, 0, 71, 72, 73, 74, 0, 75, 0,
1322 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1323 80, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1324 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1325 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1326 0, 0, 0, 0, 81, 0, 82, 0, 0, 0,
1327 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1328 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1329 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1330 0, 171, 0, 0, 0, 0, 0, 172, 173, 174,
1331 175, 12, 13, 14, 15, 16, 17, 0, 0, 0,
1332 0, 0, 176, 0, 0, 0, 0, 0, 18, 19,
1333 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
1334 30, 0, 31, 0, 32, 0, 33, 34, 35, 36,
1335 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
1336 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1337 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1338 67, 68, 69, 0, 163, 164, 165, 166, 167, 168,
1339 0, 0, 169, 170, 0, 0, 0, 0, 0, 0,
1340 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1341 0, 113, 72, 73, 74, 0, 0, 0, 0, 0,
1342 0, 0, 0, 0, 0, 0, 0, 0, 80, 14,
1343 15, 16, 17, 0, 0, 0, 0, 0, 0, 0,
1344 0, 0, 0, 0, 18, 19, 20, 21, 22, 23,
1345 24, 25, 26, 27, 28, 29, 0, 0, 0, 0,
1346 0, 0, 81, 0, 82, 36, 37, 38, 39, 40,
1347 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1348 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1349 61, 62, 63, 64, 65, 66, 67, 68, 69, 171,
1350 70, 0, 0, 0, 0, 172, 173, 174, 175, 0,
1351 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1352 -263, 0, 0, 0, 0, 0, 0, 0, 72, 73,
1353 74, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1354 0, 0, 0, 0, 0, 14, 15, 16, 17, 0,
1355 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1356 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
1357 28, 29, 0, 0, 0, 0, 0, 0, 81, 0,
1358 82, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1359 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1360 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1361 65, 66, 67, 68, 69, 0, 70, 0, 0, 0,
1362 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1363 0, 0, 0, 0, 0, 0, 0, 0, 238, 0,
1364 0, 0, 0, 0, 72, 73, 74, 0, 0, 0,
1365 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1366 0, 14, 15, 16, 17, 0, 0, 0, 0, 0,
1367 0, 0, 0, 0, 0, 0, 18, 19, 20, 21,
1368 22, 23, 24, 25, 26, 27, 28, 29, 0, 0,
1369 0, 0, 0, 0, 81, 0, 82, 36, 37, 38,
1370 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1371 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1372 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1373 69, 0, 163, 164, 165, 166, 167, 168, 0, 0,
1374 169, 170, 0, 0, 0, 0, 0, 0, 0, 0,
1375 0, 0, 0, 0, 317, 0, 0, 0, 0, 0,
1376 72, 73, 74, 0, 0, 0, 0, 0, 0, 0,
1377 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1378 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1379 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1380 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1381 81, 0, 82, 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, 0, 0,
1384 0, 0, 0, 0, 0, 0, 0, 171, 0, 0,
1385 0, 0, 0, 172, 173, 174, 175, 12, 13, 14,
1386 15, 16, 17, 0, 0, 0, 0, 0, 249, 0,
1387 0, 0, 0, 0, 18, 19, 20, 21, 22, 23,
1388 24, 25, 26, 27, 28, 29, 30, 0, 31, 0,
1389 32, 0, 33, 34, 35, 36, 37, 38, 39, 40,
1390 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1391 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1392 61, 62, 63, 64, 65, 66, 67, 68, 69, 0,
1393 163, 164, 165, 166, 167, 168, 0, 0, 169, 170,
1394 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1395 0, 0, 0, 0, 0, 0, 0, 113, 72, 73,
1396 74, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1397 0, 0, 0, 0, 80, 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, 81, 0,
1401 82, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1402 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1403 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1404 14, 15, 16, 17, 0, 171, 0, 0, 0, 0,
1405 0, 172, 173, 174, 175, 18, 19, 20, 21, 22,
1406 23, 24, 25, 26, 27, 28, 29, 0, 0, 0,
1407 0, 0, 0, 0, 0, 0, 36, 37, 38, 39,
1408 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1409 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1410 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1411 0, 163, 164, 165, 166, 167, 168, 0, 0, 169,
1412 170, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1413 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,
1414 73, 74, 0, 0, 0, 0, 0, 0, 0, 0,
1415 0, 0, 0, 0, 0, 0, 0, 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, 81,
1419 0, 82, 0, 0, 0, 0, 0, 0, 0, 0,
1420 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1421 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1422 0, 14, 15, 16, 17, 0, 171, 0, 0, 228,
1423 0, 0, 172, 173, 174, 175, 18, 19, 20, 21,
1424 22, 23, 24, 25, 26, 27, 28, 29, 0, 0,
1425 0, 0, 0, 0, 0, 0, 0, 36, 37, 38,
1426 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1427 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1428 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1429 69, 0, 163, 164, 165, 166, 167, 168, 0, 0,
1430 169, 170, 0, 0, 0, 0, 0, 0, 0, 0,
1431 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1432 72, 73, 74, 0, 0, 0, 0, 0, 0, 0,
1433 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
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 81, 0, 82, 0, 0, 0, 0, 0, 0, 0,
1438 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1439 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1440 0, 0, 14, 15, 16, 17, 0, 171, 0, 0,
1441 312, 0, 0, 172, 173, 174, 175, 18, 19, 20,
1442 21, 22, 23, 24, 25, 26, 27, 28, 29, 0,
1443 0, 0, 0, 0, 0, 0, 0, 0, 36, 37,
1444 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1445 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1446 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1447 68, 69, 0, 163, 164, 165, 166, 167, 168, 0,
1448 0, 169, 170, 0, 0, 0, 0, 0, 0, 0,
1449 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1450 0, 72, 73, 74, 0, 0, 0, 0, 0, 0,
1451 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1452 0, 0, 0, 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, 81, 0, 82, 0, 0, 0, 0, 0, 0,
1456 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1457 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1458 0, 0, 0, 14, 15, 16, 17, 0, 171, 0,
1459 0, 363, 0, 0, 172, 173, 174, 175, 18, 19,
1460 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
1461 0, 0, 0, 0, 0, 0, 0, 0, 0, 36,
1462 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
1463 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1464 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1465 67, 68, 69, 0, 163, 164, 165, 166, 167, 168,
1466 0, 0, 169, 170, 0, 0, 0, 0, 0, 0,
1467 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1468 0, 0, 72, 73, 74, 0, 0, 0, 0, 0,
1469 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1470 0, 0, 0, 0, 0, 0, 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, 81, 0, 82, 0, 0, 0, 0, 0,
1474 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1475 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1476 0, 0, 0, 0, 14, 15, 16, 17, 0, 171,
1477 0, 0, 0, 0, 0, 172, 173, 174, 175, 18,
1478 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1479 29, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1480 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
1481 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1482 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1483 66, 67, 68, 267, 0, 163, 164, 165, 166, 167,
1484 168, 0, 0, 169, 170, 0, 0, 0, 0, 0,
1485 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1486 0, 0, 0, 72, 73, 74, 0, 0, 0, 0,
1487 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1488 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1489 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1490 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1491 0, 0, 0, 81, 0, 82, 0, 0, 0, 0,
1492 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1493 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1494 -3, 0, 0, 12, 13, 14, 15, 16, 17, 0,
1495 171, 0, 0, 0, 0, 0, 172, 173, 174, 175,
1496 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
1497 28, 29, 30, 0, 31, 0, 32, 0, 33, 34,
1498 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1499 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1500 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1501 65, 66, 67, 68, 69, 0, 70, 0, 0, 0,
1502 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1503 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1504 0, 0, 0, 71, 72, 73, 74, 0, 75, 0,
1505 0, 0, 0, 0, 0, 0, 76, 77, 78, 79,
1506 80, 0, 12, 13, 14, 15, 16, 17, 0, 0,
1507 0, 0, 0, 0, 0, 0, 0, 0, 0, 18,
1508 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1509 29, 30, 0, 31, 81, 32, 82, 33, 34, 35,
1510 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
1511 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1512 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1513 66, 67, 68, 69, 0, 70, 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, 71, 72, 73, 74, 0, 75, 0, 0,
1517 0, 0, 0, 0, 0, 76, 77, 78, 79, 80,
1518 14, 15, 16, 17, 0, 0, 0, 0, 0, 0,
1519 0, 0, 0, 0, 0, 18, 19, 20, 21, 22,
1520 23, 24, 25, 26, 27, 28, 29, 0, 0, 0,
1521 0, 0, 0, 81, 0, 82, 36, 37, 38, 39,
1522 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1523 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1524 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1525 0, 337, 14, 15, 16, 17, 168, 0, 0, 0,
1526 0, 0, 0, 0, 0, 0, 0, 18, 19, 20,
1527 21, 22, 23, 24, 25, 26, 27, 28, 29, 72,
1528 73, 74, 0, 0, 0, 0, 0, 0, 36, 37,
1529 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1530 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1531 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1532 68, 69, 0, 70, 14, 15, 16, 17, 0, 81,
1533 0, 82, 0, 0, 0, 0, 0, 0, 0, 18,
1534 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1535 29, 72, 73, 74, 0, 0, 0, 0, 0, 0,
1536 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
1537 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1538 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1539 66, 67, 68, 69, 0, 70, 0, 0, 0, 0,
1540 0, 81, 0, 82, 0, 0, 0, 0, 0, 0,
1541 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1542 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1543 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1544 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1545 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1546 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1550 static const yytype_int16 yycheck
[] =
1552 9, 154, 4, 158, 76, 160, 141, 91, 141, 3,
1553 4, 9, 86, 87, 9, 146, 171, 76, 93, 94,
1554 95, 96, 97, 98, 99, 100, 101, 102, 71, 84,
1555 85, 33, 34, 35, 169, 170, 4, 226, 32, 254,
1556 34, 191, 36, 193, 38, 39, 40, 196, 196, 377,
1557 193, 109, 95, 212, 213, 190, 78, 196, 196, 212,
1558 388, 211, 196, 212, 212, 33, 34, 35, 211, 196,
1559 113, 102, 0, 212, 212, 84, 210, 33, 34, 197,
1560 198, 37, 76, 210, 115, 113, 84, 96, 187, 84,
1561 33, 226, 247, 226, 37, 110, 251, 192, 76, 254,
1562 192, 196, 111, 234, 196, 113, 259, 262, 112, 103,
1563 325, 192, 192, 192, 123, 196, 196, 196, 104, 105,
1564 106, 310, 113, 132, 113, 209, 120, 191, 227, 318,
1565 204, 205, 191, 82, 83, 144, 211, 146, 193, 113,
1566 195, 213, 192, 3, 4, 154, 196, 302, 283, 284,
1567 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
1568 295, 296, 297, 298, 299, 300, 301, 266, 177, 192,
1569 325, 311, 32, 362, 34, 310, 36, 310, 38, 39,
1570 40, 76, 281, 318, 196, 318, 290, 291, 292, 293,
1571 192, 33, 34, 35, 201, 202, 203, 88, 89, 286,
1572 287, 294, 295, 212, 303, 288, 289, 76, 193, 76,
1573 213, 76, 311, 113, 223, 370, 212, 76, 191, 212,
1574 212, 374, 191, 210, 212, 234, 366, 362, 191, 362,
1575 191, 191, 387, 192, 206, 90, 207, 246, 208, 92,
1576 191, 381, 76, 103, 384, 254, 212, 194, 193, 75,
1577 259, 404, 392, 192, 211, 193, 191, 194, 76, 399,
1578 120, 192, 196, 211, 194, 191, 212, 366, 192, 194,
1579 211, 194, 194, 213, 12, 211, 296, 298, 211, 263,
1580 379, 297, 381, 212, 301, 384, 299, 126, 133, 300,
1581 242, 223, 75, 392, 144, 319, 223, 375, 388, 86,
1582 399, 177, 246, 84, 246, -1, 325, -1, -1, -1,
1583 -1, -1, -1, -1, -1, -1, 325, -1, -1, -1,
1584 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1585 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1586 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1587 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1588 -1, -1, -1, -1, -1, 374, -1, -1, 377, -1,
1589 -1, -1, -1, -1, -1, -1, -1, -1, -1, 388,
1590 -1, -1, -1, -1, -1, -1, 3, 4, 5, 6,
1591 7, 8, 9, 10, 11, 404, 13, 14, 15, 16,
1592 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
1593 27, 28, 29, 30, 31, 32, -1, 34, -1, 36,
1594 -1, 38, 39, 40, 41, 42, 43, 44, 45, 46,
1595 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1596 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1597 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1598 77, 78, 79, 80, 81, -1, -1, 84, 85, -1,
1599 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1600 -1, -1, -1, -1, -1, -1, 103, 104, 105, 106,
1601 -1, 108, -1, -1, -1, -1, -1, -1, -1, -1,
1602 -1, -1, -1, 120, -1, -1, -1, -1, -1, -1,
1603 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1604 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1605 -1, -1, -1, -1, -1, -1, -1, 154, -1, 156,
1606 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1607 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1608 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1609 -1, -1, -1, -1, 191, -1, -1, -1, -1, -1,
1610 197, 198, 199, 200, -1, -1, -1, -1, -1, -1,
1611 -1, -1, -1, -1, -1, 212, 213, 214, 3, 4,
1612 5, 6, 7, 8, 9, 10, 11, -1, 13, 14,
1613 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
1614 25, 26, 27, 28, 29, 30, 31, 32, -1, 34,
1615 -1, 36, -1, 38, 39, 40, 41, 42, 43, 44,
1616 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1617 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1618 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1619 75, 76, 77, 78, 79, 80, 81, -1, -1, 84,
1620 85, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1621 -1, -1, -1, -1, -1, -1, -1, -1, 103, 104,
1622 105, 106, -1, 108, -1, -1, -1, -1, -1, -1,
1623 -1, -1, -1, -1, -1, 120, -1, -1, -1, -1,
1624 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1625 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1626 -1, -1, -1, -1, -1, -1, -1, -1, -1, 154,
1627 -1, 156, -1, -1, -1, -1, -1, -1, -1, -1,
1628 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1629 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1630 -1, -1, -1, -1, -1, -1, 191, -1, -1, -1,
1631 -1, -1, 197, 198, 199, 200, -1, -1, -1, -1,
1632 -1, -1, -1, -1, -1, -1, -1, 212, 213, 214,
1633 3, 4, 5, 6, 7, 8, 9, 10, 11, -1,
1634 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
1635 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
1636 -1, 34, -1, 36, -1, 38, 39, 40, 41, 42,
1637 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1638 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1639 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
1640 73, 74, 75, 76, 77, 78, 79, 80, 81, -1,
1641 -1, 84, 85, -1, -1, -1, -1, -1, -1, -1,
1642 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1643 103, 104, 105, 106, -1, 108, -1, -1, -1, -1,
1644 -1, -1, -1, -1, -1, -1, -1, 120, -1, -1,
1645 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1646 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1647 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1648 -1, 154, -1, 156, -1, -1, -1, -1, -1, -1,
1649 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1650 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1651 -1, -1, -1, -1, -1, -1, -1, -1, 191, -1,
1652 -1, -1, -1, -1, 197, 198, 199, 200, -1, -1,
1653 -1, -1, -1, -1, -1, -1, -1, -1, -1, 212,
1654 213, 214, 3, 4, 5, 6, 7, 8, 9, 10,
1655 11, -1, 13, 14, 15, 16, 17, 18, 19, 20,
1656 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
1657 31, 32, -1, 34, -1, 36, -1, 38, 39, 40,
1658 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1659 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1660 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1661 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
1662 81, -1, -1, 84, 85, -1, -1, -1, -1, -1,
1663 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1664 -1, -1, 103, 104, 105, 106, -1, 108, -1, -1,
1665 -1, -1, -1, -1, -1, -1, -1, -1, -1, 120,
1666 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1667 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1668 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1669 -1, -1, -1, 154, -1, 156, -1, -1, -1, -1,
1670 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1671 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1672 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1673 191, -1, -1, -1, -1, -1, 197, 198, 199, 200,
1674 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1675 -1, 212, 213, 214, 3, 4, 5, 6, 7, 8,
1676 9, 10, 11, -1, 13, 14, 15, 16, 17, 18,
1677 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1678 29, 30, 31, 32, -1, 34, -1, 36, -1, 38,
1679 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1680 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1681 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1682 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
1683 79, 80, 81, -1, -1, 84, 85, -1, -1, -1,
1684 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1685 -1, -1, -1, -1, 103, 104, 105, 106, -1, 108,
1686 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1687 -1, 120, -1, -1, -1, -1, -1, -1, -1, -1,
1688 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1689 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1690 -1, -1, -1, -1, -1, 154, -1, 156, -1, -1,
1691 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1692 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1693 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1694 -1, -1, 191, -1, -1, -1, -1, -1, 197, 198,
1695 199, 200, -1, -1, -1, -1, -1, -1, -1, -1,
1696 -1, -1, -1, 212, 213, 3, 4, 5, 6, 7,
1697 8, 9, 10, 11, -1, 13, 14, 15, 16, 17,
1698 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
1699 28, 29, 30, 31, 32, -1, 34, -1, 36, -1,
1700 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1701 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1702 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1703 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
1704 78, 79, 80, 81, -1, -1, 84, 85, -1, -1,
1705 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1706 -1, -1, -1, -1, -1, 103, 104, 105, 106, -1,
1707 108, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1708 -1, -1, 120, -1, -1, -1, -1, -1, -1, -1,
1709 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1710 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1711 -1, -1, -1, -1, -1, -1, 154, -1, 156, -1,
1712 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1713 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1714 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1715 -1, -1, -1, 191, -1, -1, -1, -1, -1, 197,
1716 198, 199, 200, 3, 4, 5, 6, 7, 8, -1,
1717 -1, -1, -1, -1, 212, 213, -1, -1, -1, -1,
1718 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
1719 30, 31, 32, -1, 34, -1, 36, -1, 38, 39,
1720 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1721 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1722 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1723 70, 71, 72, 73, 74, -1, 76, 77, 78, 79,
1724 80, 81, -1, -1, 84, 85, -1, -1, -1, -1,
1725 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1726 -1, -1, -1, 103, 104, 105, 106, -1, 108, -1,
1727 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1728 120, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1729 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1730 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1731 -1, -1, -1, -1, 154, -1, 156, -1, -1, -1,
1732 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1733 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1734 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1735 -1, 191, -1, -1, -1, -1, -1, 197, 198, 199,
1736 200, 3, 4, 5, 6, 7, 8, -1, -1, -1,
1737 -1, -1, 212, -1, -1, -1, -1, -1, 20, 21,
1738 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
1739 32, -1, 34, -1, 36, -1, 38, 39, 40, 41,
1740 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1741 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1742 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1743 72, 73, 74, -1, 76, 77, 78, 79, 80, 81,
1744 -1, -1, 84, 85, -1, -1, -1, -1, -1, -1,
1745 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1746 -1, 103, 104, 105, 106, -1, -1, -1, -1, -1,
1747 -1, -1, -1, -1, -1, -1, -1, -1, 120, 5,
1748 6, 7, 8, -1, -1, -1, -1, -1, -1, -1,
1749 -1, -1, -1, -1, 20, 21, 22, 23, 24, 25,
1750 26, 27, 28, 29, 30, 31, -1, -1, -1, -1,
1751 -1, -1, 154, -1, 156, 41, 42, 43, 44, 45,
1752 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1753 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1754 66, 67, 68, 69, 70, 71, 72, 73, 74, 191,
1755 76, -1, -1, -1, -1, 197, 198, 199, 200, -1,
1756 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1757 212, -1, -1, -1, -1, -1, -1, -1, 104, 105,
1758 106, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1759 -1, -1, -1, -1, -1, 5, 6, 7, 8, -1,
1760 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1761 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
1762 30, 31, -1, -1, -1, -1, -1, -1, 154, -1,
1763 156, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1764 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1765 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1766 70, 71, 72, 73, 74, -1, 76, -1, -1, -1,
1767 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1768 -1, -1, -1, -1, -1, -1, -1, -1, 214, -1,
1769 -1, -1, -1, -1, 104, 105, 106, -1, -1, -1,
1770 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1771 -1, 5, 6, 7, 8, -1, -1, -1, -1, -1,
1772 -1, -1, -1, -1, -1, -1, 20, 21, 22, 23,
1773 24, 25, 26, 27, 28, 29, 30, 31, -1, -1,
1774 -1, -1, -1, -1, 154, -1, 156, 41, 42, 43,
1775 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1776 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1777 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1778 74, -1, 76, 77, 78, 79, 80, 81, -1, -1,
1779 84, 85, -1, -1, -1, -1, -1, -1, -1, -1,
1780 -1, -1, -1, -1, 214, -1, -1, -1, -1, -1,
1781 104, 105, 106, -1, -1, -1, -1, -1, -1, -1,
1782 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1783 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1784 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1785 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1786 154, -1, 156, -1, -1, -1, -1, -1, -1, -1,
1787 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1788 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1789 -1, -1, -1, -1, -1, -1, -1, 191, -1, -1,
1790 -1, -1, -1, 197, 198, 199, 200, 3, 4, 5,
1791 6, 7, 8, -1, -1, -1, -1, -1, 212, -1,
1792 -1, -1, -1, -1, 20, 21, 22, 23, 24, 25,
1793 26, 27, 28, 29, 30, 31, 32, -1, 34, -1,
1794 36, -1, 38, 39, 40, 41, 42, 43, 44, 45,
1795 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1796 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1797 66, 67, 68, 69, 70, 71, 72, 73, 74, -1,
1798 76, 77, 78, 79, 80, 81, -1, -1, 84, 85,
1799 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1800 -1, -1, -1, -1, -1, -1, -1, 103, 104, 105,
1801 106, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1802 -1, -1, -1, -1, 120, -1, -1, -1, -1, -1,
1803 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1804 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1805 -1, -1, -1, -1, -1, -1, -1, -1, 154, -1,
1806 156, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1807 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1808 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1809 5, 6, 7, 8, -1, 191, -1, -1, -1, -1,
1810 -1, 197, 198, 199, 200, 20, 21, 22, 23, 24,
1811 25, 26, 27, 28, 29, 30, 31, -1, -1, -1,
1812 -1, -1, -1, -1, -1, -1, 41, 42, 43, 44,
1813 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1814 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1815 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1816 -1, 76, 77, 78, 79, 80, 81, -1, -1, 84,
1817 85, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1818 -1, -1, -1, -1, -1, -1, -1, -1, -1, 104,
1819 105, 106, -1, -1, -1, -1, -1, -1, -1, -1,
1820 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1821 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1822 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1823 -1, -1, -1, -1, -1, -1, -1, -1, -1, 154,
1824 -1, 156, -1, -1, -1, -1, -1, -1, -1, -1,
1825 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1826 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1827 -1, 5, 6, 7, 8, -1, 191, -1, -1, 194,
1828 -1, -1, 197, 198, 199, 200, 20, 21, 22, 23,
1829 24, 25, 26, 27, 28, 29, 30, 31, -1, -1,
1830 -1, -1, -1, -1, -1, -1, -1, 41, 42, 43,
1831 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1832 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1833 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1834 74, -1, 76, 77, 78, 79, 80, 81, -1, -1,
1835 84, 85, -1, -1, -1, -1, -1, -1, -1, -1,
1836 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1837 104, 105, 106, -1, -1, -1, -1, -1, -1, -1,
1838 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1839 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1840 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1841 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1842 154, -1, 156, -1, -1, -1, -1, -1, -1, -1,
1843 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1844 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1845 -1, -1, 5, 6, 7, 8, -1, 191, -1, -1,
1846 194, -1, -1, 197, 198, 199, 200, 20, 21, 22,
1847 23, 24, 25, 26, 27, 28, 29, 30, 31, -1,
1848 -1, -1, -1, -1, -1, -1, -1, -1, 41, 42,
1849 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1850 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1851 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
1852 73, 74, -1, 76, 77, 78, 79, 80, 81, -1,
1853 -1, 84, 85, -1, -1, -1, -1, -1, -1, -1,
1854 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1855 -1, 104, 105, 106, -1, -1, -1, -1, -1, -1,
1856 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1857 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1858 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1859 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1860 -1, 154, -1, 156, -1, -1, -1, -1, -1, -1,
1861 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1862 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1863 -1, -1, -1, 5, 6, 7, 8, -1, 191, -1,
1864 -1, 194, -1, -1, 197, 198, 199, 200, 20, 21,
1865 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
1866 -1, -1, -1, -1, -1, -1, -1, -1, -1, 41,
1867 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1868 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1869 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1870 72, 73, 74, -1, 76, 77, 78, 79, 80, 81,
1871 -1, -1, 84, 85, -1, -1, -1, -1, -1, -1,
1872 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1873 -1, -1, 104, 105, 106, -1, -1, -1, -1, -1,
1874 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1875 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1876 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1877 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1878 -1, -1, 154, -1, 156, -1, -1, -1, -1, -1,
1879 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1880 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1881 -1, -1, -1, -1, 5, 6, 7, 8, -1, 191,
1882 -1, -1, -1, -1, -1, 197, 198, 199, 200, 20,
1883 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
1884 31, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1885 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1886 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1887 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1888 71, 72, 73, 74, -1, 76, 77, 78, 79, 80,
1889 81, -1, -1, 84, 85, -1, -1, -1, -1, -1,
1890 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1891 -1, -1, -1, 104, 105, 106, -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, -1, -1, -1, -1,
1896 -1, -1, -1, 154, -1, 156, -1, -1, -1, -1,
1897 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1898 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1899 0, -1, -1, 3, 4, 5, 6, 7, 8, -1,
1900 191, -1, -1, -1, -1, -1, 197, 198, 199, 200,
1901 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
1902 30, 31, 32, -1, 34, -1, 36, -1, 38, 39,
1903 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1904 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1905 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1906 70, 71, 72, 73, 74, -1, 76, -1, -1, -1,
1907 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1908 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1909 -1, -1, -1, 103, 104, 105, 106, -1, 108, -1,
1910 -1, -1, -1, -1, -1, -1, 116, 117, 118, 119,
1911 120, -1, 3, 4, 5, 6, 7, 8, -1, -1,
1912 -1, -1, -1, -1, -1, -1, -1, -1, -1, 20,
1913 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
1914 31, 32, -1, 34, 154, 36, 156, 38, 39, 40,
1915 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1916 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1917 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1918 71, 72, 73, 74, -1, 76, -1, -1, -1, -1,
1919 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1920 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1921 -1, -1, 103, 104, 105, 106, -1, 108, -1, -1,
1922 -1, -1, -1, -1, -1, 116, 117, 118, 119, 120,
1923 5, 6, 7, 8, -1, -1, -1, -1, -1, -1,
1924 -1, -1, -1, -1, -1, 20, 21, 22, 23, 24,
1925 25, 26, 27, 28, 29, 30, 31, -1, -1, -1,
1926 -1, -1, -1, 154, -1, 156, 41, 42, 43, 44,
1927 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1928 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1929 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1930 -1, 76, 5, 6, 7, 8, 81, -1, -1, -1,
1931 -1, -1, -1, -1, -1, -1, -1, 20, 21, 22,
1932 23, 24, 25, 26, 27, 28, 29, 30, 31, 104,
1933 105, 106, -1, -1, -1, -1, -1, -1, 41, 42,
1934 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1935 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1936 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
1937 73, 74, -1, 76, 5, 6, 7, 8, -1, 154,
1938 -1, 156, -1, -1, -1, -1, -1, -1, -1, 20,
1939 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
1940 31, 104, 105, 106, -1, -1, -1, -1, -1, -1,
1941 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1942 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1943 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1944 71, 72, 73, 74, -1, 76, -1, -1, -1, -1,
1945 -1, 154, -1, 156, -1, -1, -1, -1, -1, -1,
1946 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1947 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1948 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1949 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1950 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1951 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1952 -1, -1, -1, 154, -1, 156
1955 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1956 symbol of state STATE-NUM. */
1957 static const yytype_uint16 yystos
[] =
1959 0, 109, 216, 218, 78, 0, 220, 113, 110, 217,
1960 221, 76, 3, 4, 5, 6, 7, 8, 20, 21,
1961 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
1962 32, 34, 36, 38, 39, 40, 41, 42, 43, 44,
1963 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1964 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1965 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1966 76, 103, 104, 105, 106, 108, 116, 117, 118, 119,
1967 120, 154, 156, 219, 222, 252, 253, 254, 255, 256,
1968 261, 262, 263, 264, 265, 268, 270, 271, 272, 273,
1969 274, 275, 276, 277, 301, 302, 112, 33, 34, 37,
1970 76, 213, 76, 103, 270, 276, 113, 113, 113, 113,
1971 191, 301, 212, 213, 288, 192, 196, 4, 33, 34,
1972 35, 258, 259, 269, 196, 212, 76, 33, 37, 270,
1973 272, 193, 273, 76, 213, 272, 278, 279, 273, 76,
1974 266, 267, 9, 10, 11, 13, 14, 15, 16, 17,
1975 18, 19, 75, 76, 77, 78, 79, 80, 81, 84,
1976 85, 191, 197, 198, 199, 200, 212, 213, 214, 223,
1977 224, 225, 227, 228, 229, 230, 231, 232, 233, 234,
1978 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
1979 245, 246, 247, 248, 250, 252, 253, 272, 283, 284,
1980 285, 286, 289, 290, 291, 294, 295, 296, 300, 258,
1981 257, 260, 272, 259, 76, 191, 193, 211, 194, 234,
1982 247, 251, 272, 113, 278, 76, 280, 281, 214, 279,
1983 212, 192, 196, 212, 212, 284, 191, 191, 212, 212,
1984 250, 191, 250, 210, 191, 234, 234, 250, 214, 289,
1985 84, 85, 193, 195, 192, 192, 196, 74, 248, 191,
1986 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
1987 211, 249, 234, 201, 202, 203, 197, 198, 82, 83,
1988 86, 87, 204, 205, 88, 89, 206, 207, 208, 90,
1989 92, 91, 209, 196, 212, 214, 284, 76, 257, 260,
1990 193, 211, 194, 251, 248, 282, 194, 214, 193, 196,
1991 212, 267, 75, 283, 290, 297, 250, 212, 250, 210,
1992 250, 263, 293, 192, 214, 226, 250, 76, 229, 248,
1993 248, 234, 234, 234, 236, 236, 237, 237, 238, 238,
1994 238, 238, 239, 239, 240, 241, 242, 243, 244, 245,
1995 250, 248, 193, 194, 251, 282, 211, 194, 251, 281,
1996 191, 293, 298, 299, 192, 192, 76, 192, 194, 210,
1997 251, 211, 194, 282, 211, 194, 250, 212, 192, 284,
1998 292, 286, 211, 285, 287, 288, 248, 194, 282, 211,
1999 282, 192, 250, 287, 12, 282, 282, 212, 284
2002 #define yyerrok (yyerrstatus = 0)
2003 #define yyclearin (yychar = YYEMPTY)
2004 #define YYEMPTY (-2)
2007 #define YYACCEPT goto yyacceptlab
2008 #define YYABORT goto yyabortlab
2009 #define YYERROR goto yyerrorlab
2012 /* Like YYERROR except do call yyerror. This remains here temporarily
2013 to ease the transition to the new meaning of YYERROR, for GCC.
2014 Once GCC version 2 has supplanted version 1, this can go. However,
2015 YYFAIL appears to be in use. Nevertheless, it is formally deprecated
2016 in Bison 2.4.2's NEWS entry, where a plan to phase it out is
2019 #define YYFAIL goto yyerrlab
2021 /* This is here to suppress warnings from the GCC cpp's
2022 -Wunused-macros. Normally we don't worry about that warning, but
2023 some users do, and we want to make it easy for users to remove
2024 YYFAIL uses, which will produce warnings from Bison 2.5. */
2027 #define YYRECOVERING() (!!yyerrstatus)
2029 #define YYBACKUP(Token, Value) \
2031 if (yychar == YYEMPTY && yylen == 1) \
2035 yytoken = YYTRANSLATE (yychar); \
2041 yyerror (&yylloc, state, YY_("syntax error: cannot back up")); \
2048 #define YYERRCODE 256
2051 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
2052 If N is 0, then set CURRENT to the empty location which ends
2053 the previous symbol: RHS[0] (always defined). */
2055 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
2056 #ifndef YYLLOC_DEFAULT
2057 # define YYLLOC_DEFAULT(Current, Rhs, N) \
2061 (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
2062 (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
2063 (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
2064 (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
2068 (Current).first_line = (Current).last_line = \
2069 YYRHSLOC (Rhs, 0).last_line; \
2070 (Current).first_column = (Current).last_column = \
2071 YYRHSLOC (Rhs, 0).last_column; \
2077 /* YY_LOCATION_PRINT -- Print the location on the stream.
2078 This macro was not mandated originally: define only if we know
2079 we won't break user code: when these are the locations we know. */
2081 #ifndef YY_LOCATION_PRINT
2082 # if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
2083 # define YY_LOCATION_PRINT(File, Loc) \
2084 fprintf (File, "%d.%d-%d.%d", \
2085 (Loc).first_line, (Loc).first_column, \
2086 (Loc).last_line, (Loc).last_column)
2088 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2093 /* YYLEX -- calling `yylex' with the right arguments. */
2096 # define YYLEX yylex (&yylval, &yylloc, YYLEX_PARAM)
2098 # define YYLEX yylex (&yylval, &yylloc, scanner)
2101 /* Enable debugging if requested. */
2105 # include <stdio.h> /* INFRINGES ON USER NAME SPACE */
2106 # define YYFPRINTF fprintf
2109 # define YYDPRINTF(Args) \
2115 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
2119 YYFPRINTF (stderr, "%s ", Title); \
2120 yy_symbol_print (stderr, \
2121 Type, Value, Location, state); \
2122 YYFPRINTF (stderr, "\n"); \
2127 /*--------------------------------.
2128 | Print this symbol on YYOUTPUT. |
2129 `--------------------------------*/
2132 #if (defined __STDC__ || defined __C99__FUNC__ \
2133 || defined __cplusplus || defined _MSC_VER)
2135 yy_symbol_value_print (FILE *yyoutput
, int yytype
, YYSTYPE
const * const yyvaluep
, YYLTYPE
const * const yylocationp
, struct _mesa_glsl_parse_state
*state
)
2138 yy_symbol_value_print (yyoutput
, yytype
, yyvaluep
, yylocationp
, state
)
2141 YYSTYPE
const * const yyvaluep
;
2142 YYLTYPE
const * const yylocationp
;
2143 struct _mesa_glsl_parse_state
*state
;
2148 YYUSE (yylocationp
);
2151 if (yytype
< YYNTOKENS
)
2152 YYPRINT (yyoutput
, yytoknum
[yytype
], *yyvaluep
);
2164 /*--------------------------------.
2165 | Print this symbol on YYOUTPUT. |
2166 `--------------------------------*/
2168 #if (defined __STDC__ || defined __C99__FUNC__ \
2169 || defined __cplusplus || defined _MSC_VER)
2171 yy_symbol_print (FILE *yyoutput
, int yytype
, YYSTYPE
const * const yyvaluep
, YYLTYPE
const * const yylocationp
, struct _mesa_glsl_parse_state
*state
)
2174 yy_symbol_print (yyoutput
, yytype
, yyvaluep
, yylocationp
, state
)
2177 YYSTYPE
const * const yyvaluep
;
2178 YYLTYPE
const * const yylocationp
;
2179 struct _mesa_glsl_parse_state
*state
;
2182 if (yytype
< YYNTOKENS
)
2183 YYFPRINTF (yyoutput
, "token %s (", yytname
[yytype
]);
2185 YYFPRINTF (yyoutput
, "nterm %s (", yytname
[yytype
]);
2187 YY_LOCATION_PRINT (yyoutput
, *yylocationp
);
2188 YYFPRINTF (yyoutput
, ": ");
2189 yy_symbol_value_print (yyoutput
, yytype
, yyvaluep
, yylocationp
, state
);
2190 YYFPRINTF (yyoutput
, ")");
2193 /*------------------------------------------------------------------.
2194 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
2196 `------------------------------------------------------------------*/
2198 #if (defined __STDC__ || defined __C99__FUNC__ \
2199 || defined __cplusplus || defined _MSC_VER)
2201 yy_stack_print (yytype_int16
*yybottom
, yytype_int16
*yytop
)
2204 yy_stack_print (yybottom
, yytop
)
2205 yytype_int16
*yybottom
;
2206 yytype_int16
*yytop
;
2209 YYFPRINTF (stderr
, "Stack now");
2210 for (; yybottom
<= yytop
; yybottom
++)
2212 int yybot
= *yybottom
;
2213 YYFPRINTF (stderr
, " %d", yybot
);
2215 YYFPRINTF (stderr
, "\n");
2218 # define YY_STACK_PRINT(Bottom, Top) \
2221 yy_stack_print ((Bottom), (Top)); \
2225 /*------------------------------------------------.
2226 | Report that the YYRULE is going to be reduced. |
2227 `------------------------------------------------*/
2229 #if (defined __STDC__ || defined __C99__FUNC__ \
2230 || defined __cplusplus || defined _MSC_VER)
2232 yy_reduce_print (YYSTYPE
*yyvsp
, YYLTYPE
*yylsp
, int yyrule
, struct _mesa_glsl_parse_state
*state
)
2235 yy_reduce_print (yyvsp
, yylsp
, yyrule
, state
)
2239 struct _mesa_glsl_parse_state
*state
;
2242 int yynrhs
= yyr2
[yyrule
];
2244 unsigned long int yylno
= yyrline
[yyrule
];
2245 YYFPRINTF (stderr
, "Reducing stack by rule %d (line %lu):\n",
2247 /* The symbols being reduced. */
2248 for (yyi
= 0; yyi
< yynrhs
; yyi
++)
2250 YYFPRINTF (stderr
, " $%d = ", yyi
+ 1);
2251 yy_symbol_print (stderr
, yyrhs
[yyprhs
[yyrule
] + yyi
],
2252 &(yyvsp
[(yyi
+ 1) - (yynrhs
)])
2253 , &(yylsp
[(yyi
+ 1) - (yynrhs
)]) , state
);
2254 YYFPRINTF (stderr
, "\n");
2258 # define YY_REDUCE_PRINT(Rule) \
2261 yy_reduce_print (yyvsp, yylsp, Rule, state); \
2264 /* Nonzero means print parse trace. It is left uninitialized so that
2265 multiple parsers can coexist. */
2267 #else /* !YYDEBUG */
2268 # define YYDPRINTF(Args)
2269 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
2270 # define YY_STACK_PRINT(Bottom, Top)
2271 # define YY_REDUCE_PRINT(Rule)
2272 #endif /* !YYDEBUG */
2275 /* YYINITDEPTH -- initial size of the parser's stacks. */
2277 # define YYINITDEPTH 200
2280 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
2281 if the built-in stack extension method is used).
2283 Do not make this value too large; the results are undefined if
2284 YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
2285 evaluated with infinite-precision integer arithmetic. */
2288 # define YYMAXDEPTH 10000
2296 # if defined __GLIBC__ && defined _STRING_H
2297 # define yystrlen strlen
2299 /* Return the length of YYSTR. */
2300 #if (defined __STDC__ || defined __C99__FUNC__ \
2301 || defined __cplusplus || defined _MSC_VER)
2303 yystrlen (const char *yystr
)
2311 for (yylen
= 0; yystr
[yylen
]; yylen
++)
2319 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
2320 # define yystpcpy stpcpy
2322 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
2324 #if (defined __STDC__ || defined __C99__FUNC__ \
2325 || defined __cplusplus || defined _MSC_VER)
2327 yystpcpy (char *yydest
, const char *yysrc
)
2330 yystpcpy (yydest
, yysrc
)
2336 const char *yys
= yysrc
;
2338 while ((*yyd
++ = *yys
++) != '\0')
2347 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
2348 quotes and backslashes, so that it's suitable for yyerror. The
2349 heuristic is that double-quoting is unnecessary unless the string
2350 contains an apostrophe, a comma, or backslash (other than
2351 backslash-backslash). YYSTR is taken from yytname. If YYRES is
2352 null, do not copy; instead, return the length of what the result
2355 yytnamerr (char *yyres
, const char *yystr
)
2360 char const *yyp
= yystr
;
2367 goto do_not_strip_quotes
;
2371 goto do_not_strip_quotes
;
2384 do_not_strip_quotes
: ;
2388 return yystrlen (yystr
);
2390 return yystpcpy (yyres
, yystr
) - yyres
;
2394 /* Copy into YYRESULT an error message about the unexpected token
2395 YYCHAR while in state YYSTATE. Return the number of bytes copied,
2396 including the terminating null byte. If YYRESULT is null, do not
2397 copy anything; just return the number of bytes that would be
2398 copied. As a special case, return 0 if an ordinary "syntax error"
2399 message will do. Return YYSIZE_MAXIMUM if overflow occurs during
2400 size calculation. */
2402 yysyntax_error (char *yyresult
, int yystate
, int yychar
)
2404 int yyn
= yypact
[yystate
];
2406 if (! (YYPACT_NINF
< yyn
&& yyn
<= YYLAST
))
2410 int yytype
= YYTRANSLATE (yychar
);
2411 YYSIZE_T yysize0
= yytnamerr (0, yytname
[yytype
]);
2412 YYSIZE_T yysize
= yysize0
;
2414 int yysize_overflow
= 0;
2415 enum { YYERROR_VERBOSE_ARGS_MAXIMUM
= 5 };
2416 char const *yyarg
[YYERROR_VERBOSE_ARGS_MAXIMUM
];
2420 /* This is so xgettext sees the translatable formats that are
2421 constructed on the fly. */
2422 YY_("syntax error, unexpected %s");
2423 YY_("syntax error, unexpected %s, expecting %s");
2424 YY_("syntax error, unexpected %s, expecting %s or %s");
2425 YY_("syntax error, unexpected %s, expecting %s or %s or %s");
2426 YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
2430 static char const yyunexpected
[] = "syntax error, unexpected %s";
2431 static char const yyexpecting
[] = ", expecting %s";
2432 static char const yyor
[] = " or %s";
2433 char yyformat
[sizeof yyunexpected
2434 + sizeof yyexpecting
- 1
2435 + ((YYERROR_VERBOSE_ARGS_MAXIMUM
- 2)
2436 * (sizeof yyor
- 1))];
2437 char const *yyprefix
= yyexpecting
;
2439 /* Start YYX at -YYN if negative to avoid negative indexes in
2441 int yyxbegin
= yyn
< 0 ? -yyn
: 0;
2443 /* Stay within bounds of both yycheck and yytname. */
2444 int yychecklim
= YYLAST
- yyn
+ 1;
2445 int yyxend
= yychecklim
< YYNTOKENS
? yychecklim
: YYNTOKENS
;
2448 yyarg
[0] = yytname
[yytype
];
2449 yyfmt
= yystpcpy (yyformat
, yyunexpected
);
2451 for (yyx
= yyxbegin
; yyx
< yyxend
; ++yyx
)
2452 if (yycheck
[yyx
+ yyn
] == yyx
&& yyx
!= YYTERROR
)
2454 if (yycount
== YYERROR_VERBOSE_ARGS_MAXIMUM
)
2458 yyformat
[sizeof yyunexpected
- 1] = '\0';
2461 yyarg
[yycount
++] = yytname
[yyx
];
2462 yysize1
= yysize
+ yytnamerr (0, yytname
[yyx
]);
2463 yysize_overflow
|= (yysize1
< yysize
);
2465 yyfmt
= yystpcpy (yyfmt
, yyprefix
);
2469 yyf
= YY_(yyformat
);
2470 yysize1
= yysize
+ yystrlen (yyf
);
2471 yysize_overflow
|= (yysize1
< yysize
);
2474 if (yysize_overflow
)
2475 return YYSIZE_MAXIMUM
;
2479 /* Avoid sprintf, as that infringes on the user's name space.
2480 Don't have undefined behavior even if the translation
2481 produced a string with the wrong number of "%s"s. */
2482 char *yyp
= yyresult
;
2484 while ((*yyp
= *yyf
) != '\0')
2486 if (*yyp
== '%' && yyf
[1] == 's' && yyi
< yycount
)
2488 yyp
+= yytnamerr (yyp
, yyarg
[yyi
++]);
2501 #endif /* YYERROR_VERBOSE */
2504 /*-----------------------------------------------.
2505 | Release the memory associated to this symbol. |
2506 `-----------------------------------------------*/
2509 #if (defined __STDC__ || defined __C99__FUNC__ \
2510 || defined __cplusplus || defined _MSC_VER)
2512 yydestruct (const char *yymsg
, int yytype
, YYSTYPE
*yyvaluep
, YYLTYPE
*yylocationp
, struct _mesa_glsl_parse_state
*state
)
2515 yydestruct (yymsg
, yytype
, yyvaluep
, yylocationp
, state
)
2519 YYLTYPE
*yylocationp
;
2520 struct _mesa_glsl_parse_state
*state
;
2524 YYUSE (yylocationp
);
2529 YY_SYMBOL_PRINT (yymsg
, yytype
, yyvaluep
, yylocationp
);
2539 /* Prevent warnings from -Wmissing-prototypes. */
2540 #ifdef YYPARSE_PARAM
2541 #if defined __STDC__ || defined __cplusplus
2542 int yyparse (void *YYPARSE_PARAM
);
2546 #else /* ! YYPARSE_PARAM */
2547 #if defined __STDC__ || defined __cplusplus
2548 int yyparse (struct _mesa_glsl_parse_state
*state
);
2552 #endif /* ! YYPARSE_PARAM */
2558 /*-------------------------.
2559 | yyparse or yypush_parse. |
2560 `-------------------------*/
2562 #ifdef YYPARSE_PARAM
2563 #if (defined __STDC__ || defined __C99__FUNC__ \
2564 || defined __cplusplus || defined _MSC_VER)
2566 yyparse (void *YYPARSE_PARAM
)
2569 yyparse (YYPARSE_PARAM
)
2570 void *YYPARSE_PARAM
;
2572 #else /* ! YYPARSE_PARAM */
2573 #if (defined __STDC__ || defined __C99__FUNC__ \
2574 || defined __cplusplus || defined _MSC_VER)
2576 yyparse (struct _mesa_glsl_parse_state
*state
)
2580 struct _mesa_glsl_parse_state
*state
;
2584 /* The lookahead symbol. */
2587 /* The semantic value of the lookahead symbol. */
2590 /* Location data for the lookahead symbol. */
2593 /* Number of syntax errors so far. */
2597 /* Number of tokens to shift before error messages enabled. */
2600 /* The stacks and their tools:
2601 `yyss': related to states.
2602 `yyvs': related to semantic values.
2603 `yyls': related to locations.
2605 Refer to the stacks thru separate pointers, to allow yyoverflow
2606 to reallocate them elsewhere. */
2608 /* The state stack. */
2609 yytype_int16 yyssa
[YYINITDEPTH
];
2611 yytype_int16
*yyssp
;
2613 /* The semantic value stack. */
2614 YYSTYPE yyvsa
[YYINITDEPTH
];
2618 /* The location stack. */
2619 YYLTYPE yylsa
[YYINITDEPTH
];
2623 /* The locations where the error started and ended. */
2624 YYLTYPE yyerror_range
[3];
2626 YYSIZE_T yystacksize
;
2630 /* Lookahead token as an internal (translated) token number. */
2632 /* The variables used to return semantic value and location from the
2638 /* Buffer for error messages, and its allocated size. */
2640 char *yymsg
= yymsgbuf
;
2641 YYSIZE_T yymsg_alloc
= sizeof yymsgbuf
;
2644 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N), yylsp -= (N))
2646 /* The number of symbols on the RHS of the reduced rule.
2647 Keep to zero when no symbol should be popped. */
2654 yystacksize
= YYINITDEPTH
;
2656 YYDPRINTF ((stderr
, "Starting parse\n"));
2661 yychar
= YYEMPTY
; /* Cause a token to be read. */
2663 /* Initialize stack pointers.
2664 Waste one element of value and location stack
2665 so that they stay on the same level as the state stack.
2666 The wasted elements are never initialized. */
2671 #if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
2672 /* Initialize the default location before parsing starts. */
2673 yylloc
.first_line
= yylloc
.last_line
= 1;
2674 yylloc
.first_column
= yylloc
.last_column
= 1;
2677 /* User initialization code. */
2679 /* Line 1251 of yacc.c */
2680 #line 41 "glsl_parser.ypp"
2682 yylloc
.first_line
= 1;
2683 yylloc
.first_column
= 1;
2684 yylloc
.last_line
= 1;
2685 yylloc
.last_column
= 1;
2689 /* Line 1251 of yacc.c */
2690 #line 2691 "glsl_parser.cpp"
2695 /*------------------------------------------------------------.
2696 | yynewstate -- Push a new state, which is found in yystate. |
2697 `------------------------------------------------------------*/
2699 /* In all cases, when you get here, the value and location stacks
2700 have just been pushed. So pushing a state here evens the stacks. */
2706 if (yyss
+ yystacksize
- 1 <= yyssp
)
2708 /* Get the current used size of the three stacks, in elements. */
2709 YYSIZE_T yysize
= yyssp
- yyss
+ 1;
2713 /* Give user a chance to reallocate the stack. Use copies of
2714 these so that the &'s don't force the real ones into
2716 YYSTYPE
*yyvs1
= yyvs
;
2717 yytype_int16
*yyss1
= yyss
;
2718 YYLTYPE
*yyls1
= yyls
;
2720 /* Each stack pointer address is followed by the size of the
2721 data in use in that stack, in bytes. This used to be a
2722 conditional around just the two extra args, but that might
2723 be undefined if yyoverflow is a macro. */
2724 yyoverflow (YY_("memory exhausted"),
2725 &yyss1
, yysize
* sizeof (*yyssp
),
2726 &yyvs1
, yysize
* sizeof (*yyvsp
),
2727 &yyls1
, yysize
* sizeof (*yylsp
),
2734 #else /* no yyoverflow */
2735 # ifndef YYSTACK_RELOCATE
2736 goto yyexhaustedlab
;
2738 /* Extend the stack our own way. */
2739 if (YYMAXDEPTH
<= yystacksize
)
2740 goto yyexhaustedlab
;
2742 if (YYMAXDEPTH
< yystacksize
)
2743 yystacksize
= YYMAXDEPTH
;
2746 yytype_int16
*yyss1
= yyss
;
2747 union yyalloc
*yyptr
=
2748 (union yyalloc
*) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize
));
2750 goto yyexhaustedlab
;
2751 YYSTACK_RELOCATE (yyss_alloc
, yyss
);
2752 YYSTACK_RELOCATE (yyvs_alloc
, yyvs
);
2753 YYSTACK_RELOCATE (yyls_alloc
, yyls
);
2754 # undef YYSTACK_RELOCATE
2756 YYSTACK_FREE (yyss1
);
2759 #endif /* no yyoverflow */
2761 yyssp
= yyss
+ yysize
- 1;
2762 yyvsp
= yyvs
+ yysize
- 1;
2763 yylsp
= yyls
+ yysize
- 1;
2765 YYDPRINTF ((stderr
, "Stack size increased to %lu\n",
2766 (unsigned long int) yystacksize
));
2768 if (yyss
+ yystacksize
- 1 <= yyssp
)
2772 YYDPRINTF ((stderr
, "Entering state %d\n", yystate
));
2774 if (yystate
== YYFINAL
)
2784 /* Do appropriate processing given the current state. Read a
2785 lookahead token if we need one and don't already have one. */
2787 /* First try to decide what to do without reference to lookahead token. */
2788 yyn
= yypact
[yystate
];
2789 if (yyn
== YYPACT_NINF
)
2792 /* Not known => get a lookahead token if don't already have one. */
2794 /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
2795 if (yychar
== YYEMPTY
)
2797 YYDPRINTF ((stderr
, "Reading a token: "));
2801 if (yychar
<= YYEOF
)
2803 yychar
= yytoken
= YYEOF
;
2804 YYDPRINTF ((stderr
, "Now at end of input.\n"));
2808 yytoken
= YYTRANSLATE (yychar
);
2809 YY_SYMBOL_PRINT ("Next token is", yytoken
, &yylval
, &yylloc
);
2812 /* If the proper action on seeing token YYTOKEN is to reduce or to
2813 detect an error, take that action. */
2815 if (yyn
< 0 || YYLAST
< yyn
|| yycheck
[yyn
] != yytoken
)
2820 if (yyn
== 0 || yyn
== YYTABLE_NINF
)
2826 /* Count tokens shifted since error; after three, turn off error
2831 /* Shift the lookahead token. */
2832 YY_SYMBOL_PRINT ("Shifting", yytoken
, &yylval
, &yylloc
);
2834 /* Discard the shifted token. */
2843 /*-----------------------------------------------------------.
2844 | yydefault -- do the default action for the current state. |
2845 `-----------------------------------------------------------*/
2847 yyn
= yydefact
[yystate
];
2853 /*-----------------------------.
2854 | yyreduce -- Do a reduction. |
2855 `-----------------------------*/
2857 /* yyn is the number of a rule to reduce with. */
2860 /* If YYLEN is nonzero, implement the default value of the action:
2863 Otherwise, the following line sets YYVAL to garbage.
2864 This behavior is undocumented and Bison
2865 users should not rely upon it. Assigning to YYVAL
2866 unconditionally makes the parser a bit smaller, and it avoids a
2867 GCC warning that YYVAL may be used uninitialized. */
2868 yyval
= yyvsp
[1-yylen
];
2870 /* Default location. */
2871 YYLLOC_DEFAULT (yyloc
, (yylsp
- yylen
), yylen
);
2872 YY_REDUCE_PRINT (yyn
);
2877 /* Line 1464 of yacc.c */
2878 #line 214 "glsl_parser.ypp"
2880 _mesa_glsl_initialize_types(state
);
2886 /* Line 1464 of yacc.c */
2887 #line 223 "glsl_parser.ypp"
2889 switch ((yyvsp
[(2) - (3)].n
)) {
2891 state
->es_shader
= true;
2895 /* FINISHME: Check against implementation support versions. */
2896 state
->language_version
= (yyvsp
[(2) - (3)].n
);
2899 _mesa_glsl_error(& (yylsp
[(2) - (3)]), state
, "Shading language version"
2900 "%u is not supported\n", (yyvsp
[(2) - (3)].n
));
2908 /* Line 1464 of yacc.c */
2909 #line 255 "glsl_parser.ypp"
2911 if (!_mesa_glsl_process_extension((yyvsp
[(2) - (5)].identifier
), & (yylsp
[(2) - (5)]), (yyvsp
[(4) - (5)].identifier
), & (yylsp
[(4) - (5)]), state
)) {
2919 /* Line 1464 of yacc.c */
2920 #line 264 "glsl_parser.ypp"
2922 /* FINISHME: The NULL test is only required because 'precision'
2923 * FINISHME: statements are not yet supported.
2925 if ((yyvsp
[(1) - (1)].node
) != NULL
)
2926 state
->translation_unit
.push_tail(& (yyvsp
[(1) - (1)].node
)->link
);
2932 /* Line 1464 of yacc.c */
2933 #line 272 "glsl_parser.ypp"
2935 /* FINISHME: The NULL test is only required because 'precision'
2936 * FINISHME: statements are not yet supported.
2938 if ((yyvsp
[(2) - (2)].node
) != NULL
)
2939 state
->translation_unit
.push_tail(& (yyvsp
[(2) - (2)].node
)->link
);
2945 /* Line 1464 of yacc.c */
2946 #line 287 "glsl_parser.ypp"
2949 (yyval
.expression
) = new(ctx
) ast_expression(ast_identifier
, NULL
, NULL
, NULL
);
2950 (yyval
.expression
)->set_location(yylloc
);
2951 (yyval
.expression
)->primary_expression
.identifier
= (yyvsp
[(1) - (1)].identifier
);
2957 /* Line 1464 of yacc.c */
2958 #line 294 "glsl_parser.ypp"
2961 (yyval
.expression
) = new(ctx
) ast_expression(ast_int_constant
, NULL
, NULL
, NULL
);
2962 (yyval
.expression
)->set_location(yylloc
);
2963 (yyval
.expression
)->primary_expression
.int_constant
= (yyvsp
[(1) - (1)].n
);
2969 /* Line 1464 of yacc.c */
2970 #line 301 "glsl_parser.ypp"
2973 (yyval
.expression
) = new(ctx
) ast_expression(ast_uint_constant
, NULL
, NULL
, NULL
);
2974 (yyval
.expression
)->set_location(yylloc
);
2975 (yyval
.expression
)->primary_expression
.uint_constant
= (yyvsp
[(1) - (1)].n
);
2981 /* Line 1464 of yacc.c */
2982 #line 308 "glsl_parser.ypp"
2985 (yyval
.expression
) = new(ctx
) ast_expression(ast_float_constant
, NULL
, NULL
, NULL
);
2986 (yyval
.expression
)->set_location(yylloc
);
2987 (yyval
.expression
)->primary_expression
.float_constant
= (yyvsp
[(1) - (1)].real
);
2993 /* Line 1464 of yacc.c */
2994 #line 315 "glsl_parser.ypp"
2997 (yyval
.expression
) = new(ctx
) ast_expression(ast_bool_constant
, NULL
, NULL
, NULL
);
2998 (yyval
.expression
)->set_location(yylloc
);
2999 (yyval
.expression
)->primary_expression
.bool_constant
= (yyvsp
[(1) - (1)].n
);
3005 /* Line 1464 of yacc.c */
3006 #line 322 "glsl_parser.ypp"
3008 (yyval
.expression
) = (yyvsp
[(2) - (3)].expression
);
3014 /* Line 1464 of yacc.c */
3015 #line 330 "glsl_parser.ypp"
3018 (yyval
.expression
) = new(ctx
) ast_expression(ast_array_index
, (yyvsp
[(1) - (4)].expression
), (yyvsp
[(3) - (4)].expression
), NULL
);
3019 (yyval
.expression
)->set_location(yylloc
);
3025 /* Line 1464 of yacc.c */
3026 #line 336 "glsl_parser.ypp"
3028 (yyval
.expression
) = (yyvsp
[(1) - (1)].expression
);
3034 /* Line 1464 of yacc.c */
3035 #line 340 "glsl_parser.ypp"
3038 (yyval
.expression
) = new(ctx
) ast_expression(ast_field_selection
, (yyvsp
[(1) - (3)].expression
), NULL
, NULL
);
3039 (yyval
.expression
)->set_location(yylloc
);
3040 (yyval
.expression
)->primary_expression
.identifier
= (yyvsp
[(3) - (3)].identifier
);
3046 /* Line 1464 of yacc.c */
3047 #line 347 "glsl_parser.ypp"
3050 (yyval
.expression
) = new(ctx
) ast_expression(ast_post_inc
, (yyvsp
[(1) - (2)].expression
), NULL
, NULL
);
3051 (yyval
.expression
)->set_location(yylloc
);
3057 /* Line 1464 of yacc.c */
3058 #line 353 "glsl_parser.ypp"
3061 (yyval
.expression
) = new(ctx
) ast_expression(ast_post_dec
, (yyvsp
[(1) - (2)].expression
), NULL
, NULL
);
3062 (yyval
.expression
)->set_location(yylloc
);
3068 /* Line 1464 of yacc.c */
3069 #line 371 "glsl_parser.ypp"
3072 (yyval
.expression
) = new(ctx
) ast_expression(ast_field_selection
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
), NULL
);
3073 (yyval
.expression
)->set_location(yylloc
);
3079 /* Line 1464 of yacc.c */
3080 #line 390 "glsl_parser.ypp"
3082 (yyval
.expression
) = (yyvsp
[(1) - (2)].expression
);
3083 (yyval
.expression
)->set_location(yylloc
);
3084 (yyval
.expression
)->expressions
.push_tail(& (yyvsp
[(2) - (2)].expression
)->link
);
3090 /* Line 1464 of yacc.c */
3091 #line 396 "glsl_parser.ypp"
3093 (yyval
.expression
) = (yyvsp
[(1) - (3)].expression
);
3094 (yyval
.expression
)->set_location(yylloc
);
3095 (yyval
.expression
)->expressions
.push_tail(& (yyvsp
[(3) - (3)].expression
)->link
);
3101 /* Line 1464 of yacc.c */
3102 #line 412 "glsl_parser.ypp"
3105 (yyval
.expression
) = new(ctx
) ast_function_expression((yyvsp
[(1) - (1)].type_specifier
));
3106 (yyval
.expression
)->set_location(yylloc
);
3112 /* Line 1464 of yacc.c */
3113 #line 418 "glsl_parser.ypp"
3116 ast_expression
*callee
= new(ctx
) ast_expression((yyvsp
[(1) - (1)].identifier
));
3117 (yyval
.expression
) = new(ctx
) ast_function_expression(callee
);
3118 (yyval
.expression
)->set_location(yylloc
);
3124 /* Line 1464 of yacc.c */
3125 #line 425 "glsl_parser.ypp"
3128 ast_expression
*callee
= new(ctx
) ast_expression((yyvsp
[(1) - (1)].identifier
));
3129 (yyval
.expression
) = new(ctx
) ast_function_expression(callee
);
3130 (yyval
.expression
)->set_location(yylloc
);
3136 /* Line 1464 of yacc.c */
3137 #line 437 "glsl_parser.ypp"
3140 (yyval
.expression
) = new(ctx
) ast_expression(ast_pre_inc
, (yyvsp
[(2) - (2)].expression
), NULL
, NULL
);
3141 (yyval
.expression
)->set_location(yylloc
);
3147 /* Line 1464 of yacc.c */
3148 #line 443 "glsl_parser.ypp"
3151 (yyval
.expression
) = new(ctx
) ast_expression(ast_pre_dec
, (yyvsp
[(2) - (2)].expression
), NULL
, NULL
);
3152 (yyval
.expression
)->set_location(yylloc
);
3158 /* Line 1464 of yacc.c */
3159 #line 449 "glsl_parser.ypp"
3162 (yyval
.expression
) = new(ctx
) ast_expression((yyvsp
[(1) - (2)].n
), (yyvsp
[(2) - (2)].expression
), NULL
, NULL
);
3163 (yyval
.expression
)->set_location(yylloc
);
3169 /* Line 1464 of yacc.c */
3170 #line 458 "glsl_parser.ypp"
3171 { (yyval
.n
) = ast_plus
; ;}
3176 /* Line 1464 of yacc.c */
3177 #line 459 "glsl_parser.ypp"
3178 { (yyval
.n
) = ast_neg
; ;}
3183 /* Line 1464 of yacc.c */
3184 #line 460 "glsl_parser.ypp"
3185 { (yyval
.n
) = ast_logic_not
; ;}
3190 /* Line 1464 of yacc.c */
3191 #line 461 "glsl_parser.ypp"
3192 { (yyval
.n
) = ast_bit_not
; ;}
3197 /* Line 1464 of yacc.c */
3198 #line 467 "glsl_parser.ypp"
3201 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_mul
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3202 (yyval
.expression
)->set_location(yylloc
);
3208 /* Line 1464 of yacc.c */
3209 #line 473 "glsl_parser.ypp"
3212 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_div
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3213 (yyval
.expression
)->set_location(yylloc
);
3219 /* Line 1464 of yacc.c */
3220 #line 479 "glsl_parser.ypp"
3223 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_mod
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3224 (yyval
.expression
)->set_location(yylloc
);
3230 /* Line 1464 of yacc.c */
3231 #line 489 "glsl_parser.ypp"
3234 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_add
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3235 (yyval
.expression
)->set_location(yylloc
);
3241 /* Line 1464 of yacc.c */
3242 #line 495 "glsl_parser.ypp"
3245 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_sub
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3246 (yyval
.expression
)->set_location(yylloc
);
3252 /* Line 1464 of yacc.c */
3253 #line 505 "glsl_parser.ypp"
3256 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_lshift
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3257 (yyval
.expression
)->set_location(yylloc
);
3263 /* Line 1464 of yacc.c */
3264 #line 511 "glsl_parser.ypp"
3267 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_rshift
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3268 (yyval
.expression
)->set_location(yylloc
);
3274 /* Line 1464 of yacc.c */
3275 #line 521 "glsl_parser.ypp"
3278 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_less
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3279 (yyval
.expression
)->set_location(yylloc
);
3285 /* Line 1464 of yacc.c */
3286 #line 527 "glsl_parser.ypp"
3289 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_greater
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3290 (yyval
.expression
)->set_location(yylloc
);
3296 /* Line 1464 of yacc.c */
3297 #line 533 "glsl_parser.ypp"
3300 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_lequal
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3301 (yyval
.expression
)->set_location(yylloc
);
3307 /* Line 1464 of yacc.c */
3308 #line 539 "glsl_parser.ypp"
3311 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_gequal
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3312 (yyval
.expression
)->set_location(yylloc
);
3318 /* Line 1464 of yacc.c */
3319 #line 549 "glsl_parser.ypp"
3322 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_equal
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3323 (yyval
.expression
)->set_location(yylloc
);
3329 /* Line 1464 of yacc.c */
3330 #line 555 "glsl_parser.ypp"
3333 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_nequal
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3334 (yyval
.expression
)->set_location(yylloc
);
3340 /* Line 1464 of yacc.c */
3341 #line 565 "glsl_parser.ypp"
3344 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_bit_or
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3345 (yyval
.expression
)->set_location(yylloc
);
3351 /* Line 1464 of yacc.c */
3352 #line 575 "glsl_parser.ypp"
3355 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_bit_xor
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3356 (yyval
.expression
)->set_location(yylloc
);
3362 /* Line 1464 of yacc.c */
3363 #line 585 "glsl_parser.ypp"
3366 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_bit_or
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3367 (yyval
.expression
)->set_location(yylloc
);
3373 /* Line 1464 of yacc.c */
3374 #line 595 "glsl_parser.ypp"
3377 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_logic_and
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3378 (yyval
.expression
)->set_location(yylloc
);
3384 /* Line 1464 of yacc.c */
3385 #line 605 "glsl_parser.ypp"
3388 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_logic_xor
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3389 (yyval
.expression
)->set_location(yylloc
);
3395 /* Line 1464 of yacc.c */
3396 #line 615 "glsl_parser.ypp"
3399 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_logic_or
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3400 (yyval
.expression
)->set_location(yylloc
);
3406 /* Line 1464 of yacc.c */
3407 #line 625 "glsl_parser.ypp"
3410 (yyval
.expression
) = new(ctx
) ast_expression(ast_conditional
, (yyvsp
[(1) - (5)].expression
), (yyvsp
[(3) - (5)].expression
), (yyvsp
[(5) - (5)].expression
));
3411 (yyval
.expression
)->set_location(yylloc
);
3417 /* Line 1464 of yacc.c */
3418 #line 635 "glsl_parser.ypp"
3421 (yyval
.expression
) = new(ctx
) ast_expression((yyvsp
[(2) - (3)].n
), (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
), NULL
);
3422 (yyval
.expression
)->set_location(yylloc
);
3428 /* Line 1464 of yacc.c */
3429 #line 643 "glsl_parser.ypp"
3430 { (yyval
.n
) = ast_assign
; ;}
3435 /* Line 1464 of yacc.c */
3436 #line 644 "glsl_parser.ypp"
3437 { (yyval
.n
) = ast_mul_assign
; ;}
3442 /* Line 1464 of yacc.c */
3443 #line 645 "glsl_parser.ypp"
3444 { (yyval
.n
) = ast_div_assign
; ;}
3449 /* Line 1464 of yacc.c */
3450 #line 646 "glsl_parser.ypp"
3451 { (yyval
.n
) = ast_mod_assign
; ;}
3456 /* Line 1464 of yacc.c */
3457 #line 647 "glsl_parser.ypp"
3458 { (yyval
.n
) = ast_add_assign
; ;}
3463 /* Line 1464 of yacc.c */
3464 #line 648 "glsl_parser.ypp"
3465 { (yyval
.n
) = ast_sub_assign
; ;}
3470 /* Line 1464 of yacc.c */
3471 #line 649 "glsl_parser.ypp"
3472 { (yyval
.n
) = ast_ls_assign
; ;}
3477 /* Line 1464 of yacc.c */
3478 #line 650 "glsl_parser.ypp"
3479 { (yyval
.n
) = ast_rs_assign
; ;}
3484 /* Line 1464 of yacc.c */
3485 #line 651 "glsl_parser.ypp"
3486 { (yyval
.n
) = ast_and_assign
; ;}
3491 /* Line 1464 of yacc.c */
3492 #line 652 "glsl_parser.ypp"
3493 { (yyval
.n
) = ast_xor_assign
; ;}
3498 /* Line 1464 of yacc.c */
3499 #line 653 "glsl_parser.ypp"
3500 { (yyval
.n
) = ast_or_assign
; ;}
3505 /* Line 1464 of yacc.c */
3506 #line 658 "glsl_parser.ypp"
3508 (yyval
.expression
) = (yyvsp
[(1) - (1)].expression
);
3514 /* Line 1464 of yacc.c */
3515 #line 662 "glsl_parser.ypp"
3518 if ((yyvsp
[(1) - (3)].expression
)->oper
!= ast_sequence
) {
3519 (yyval
.expression
) = new(ctx
) ast_expression(ast_sequence
, NULL
, NULL
, NULL
);
3520 (yyval
.expression
)->set_location(yylloc
);
3521 (yyval
.expression
)->expressions
.push_tail(& (yyvsp
[(1) - (3)].expression
)->link
);
3523 (yyval
.expression
) = (yyvsp
[(1) - (3)].expression
);
3526 (yyval
.expression
)->expressions
.push_tail(& (yyvsp
[(3) - (3)].expression
)->link
);
3532 /* Line 1464 of yacc.c */
3533 #line 682 "glsl_parser.ypp"
3535 (yyval
.node
) = (yyvsp
[(1) - (2)].function
);
3541 /* Line 1464 of yacc.c */
3542 #line 686 "glsl_parser.ypp"
3544 (yyval
.node
) = (yyvsp
[(1) - (2)].declarator_list
);
3550 /* Line 1464 of yacc.c */
3551 #line 690 "glsl_parser.ypp"
3553 if (((yyvsp
[(3) - (4)].type_specifier
)->type_specifier
!= ast_float
)
3554 && ((yyvsp
[(3) - (4)].type_specifier
)->type_specifier
!= ast_int
)) {
3555 _mesa_glsl_error(& (yylsp
[(3) - (4)]), state
, "global precision qualifier can "
3556 "only be applied to `int' or `float'\n");
3560 (yyval
.node
) = NULL
; /* FINISHME */
3566 /* Line 1464 of yacc.c */
3567 #line 713 "glsl_parser.ypp"
3569 (yyval
.function
) = (yyvsp
[(1) - (2)].function
);
3570 (yyval
.function
)->parameters
.push_tail(& (yyvsp
[(2) - (2)].parameter_declarator
)->link
);
3576 /* Line 1464 of yacc.c */
3577 #line 718 "glsl_parser.ypp"
3579 (yyval
.function
) = (yyvsp
[(1) - (3)].function
);
3580 (yyval
.function
)->parameters
.push_tail(& (yyvsp
[(3) - (3)].parameter_declarator
)->link
);
3586 /* Line 1464 of yacc.c */
3587 #line 726 "glsl_parser.ypp"
3590 (yyval
.function
) = new(ctx
) ast_function();
3591 (yyval
.function
)->set_location(yylloc
);
3592 (yyval
.function
)->return_type
= (yyvsp
[(1) - (3)].fully_specified_type
);
3593 (yyval
.function
)->identifier
= (yyvsp
[(2) - (3)].identifier
);
3599 /* Line 1464 of yacc.c */
3600 #line 737 "glsl_parser.ypp"
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
->set_location(yylloc
);
3607 (yyval
.parameter_declarator
)->type
->specifier
= (yyvsp
[(1) - (2)].type_specifier
);
3608 (yyval
.parameter_declarator
)->identifier
= (yyvsp
[(2) - (2)].identifier
);
3614 /* Line 1464 of yacc.c */
3615 #line 747 "glsl_parser.ypp"
3618 (yyval
.parameter_declarator
) = new(ctx
) ast_parameter_declarator();
3619 (yyval
.parameter_declarator
)->set_location(yylloc
);
3620 (yyval
.parameter_declarator
)->type
= new(ctx
) ast_fully_specified_type();
3621 (yyval
.parameter_declarator
)->type
->set_location(yylloc
);
3622 (yyval
.parameter_declarator
)->type
->specifier
= (yyvsp
[(1) - (5)].type_specifier
);
3623 (yyval
.parameter_declarator
)->identifier
= (yyvsp
[(2) - (5)].identifier
);
3624 (yyval
.parameter_declarator
)->is_array
= true;
3625 (yyval
.parameter_declarator
)->array_size
= (yyvsp
[(4) - (5)].expression
);
3631 /* Line 1464 of yacc.c */
3632 #line 762 "glsl_parser.ypp"
3634 (yyvsp
[(1) - (3)].type_qualifier
).i
|= (yyvsp
[(2) - (3)].type_qualifier
).i
;
3636 (yyval
.parameter_declarator
) = (yyvsp
[(3) - (3)].parameter_declarator
);
3637 (yyval
.parameter_declarator
)->type
->qualifier
= (yyvsp
[(1) - (3)].type_qualifier
).q
;
3643 /* Line 1464 of yacc.c */
3644 #line 769 "glsl_parser.ypp"
3646 (yyval
.parameter_declarator
) = (yyvsp
[(2) - (2)].parameter_declarator
);
3647 (yyval
.parameter_declarator
)->type
->qualifier
= (yyvsp
[(1) - (2)].type_qualifier
).q
;
3653 /* Line 1464 of yacc.c */
3654 #line 774 "glsl_parser.ypp"
3657 (yyvsp
[(1) - (3)].type_qualifier
).i
|= (yyvsp
[(2) - (3)].type_qualifier
).i
;
3659 (yyval
.parameter_declarator
) = new(ctx
) ast_parameter_declarator();
3660 (yyval
.parameter_declarator
)->set_location(yylloc
);
3661 (yyval
.parameter_declarator
)->type
= new(ctx
) ast_fully_specified_type();
3662 (yyval
.parameter_declarator
)->type
->qualifier
= (yyvsp
[(1) - (3)].type_qualifier
).q
;
3663 (yyval
.parameter_declarator
)->type
->specifier
= (yyvsp
[(3) - (3)].type_specifier
);
3669 /* Line 1464 of yacc.c */
3670 #line 785 "glsl_parser.ypp"
3673 (yyval
.parameter_declarator
) = new(ctx
) ast_parameter_declarator();
3674 (yyval
.parameter_declarator
)->set_location(yylloc
);
3675 (yyval
.parameter_declarator
)->type
= new(ctx
) ast_fully_specified_type();
3676 (yyval
.parameter_declarator
)->type
->qualifier
= (yyvsp
[(1) - (2)].type_qualifier
).q
;
3677 (yyval
.parameter_declarator
)->type
->specifier
= (yyvsp
[(2) - (2)].type_specifier
);
3683 /* Line 1464 of yacc.c */
3684 #line 796 "glsl_parser.ypp"
3685 { (yyval
.type_qualifier
).i
= 0; ;}
3690 /* Line 1464 of yacc.c */
3691 #line 797 "glsl_parser.ypp"
3692 { (yyval
.type_qualifier
).i
= 0; (yyval
.type_qualifier
).q
.in
= 1; ;}
3697 /* Line 1464 of yacc.c */
3698 #line 798 "glsl_parser.ypp"
3699 { (yyval
.type_qualifier
).i
= 0; (yyval
.type_qualifier
).q
.out
= 1; ;}
3704 /* Line 1464 of yacc.c */
3705 #line 799 "glsl_parser.ypp"
3706 { (yyval
.type_qualifier
).i
= 0; (yyval
.type_qualifier
).q
.in
= 1; (yyval
.type_qualifier
).q
.out
= 1; ;}
3711 /* Line 1464 of yacc.c */
3712 #line 809 "glsl_parser.ypp"
3715 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(3) - (3)].identifier
), false, NULL
, NULL
);
3716 decl
->set_location(yylloc
);
3718 (yyval
.declarator_list
) = (yyvsp
[(1) - (3)].declarator_list
);
3719 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3725 /* Line 1464 of yacc.c */
3726 #line 818 "glsl_parser.ypp"
3729 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(3) - (5)].identifier
), true, NULL
, NULL
);
3730 decl
->set_location(yylloc
);
3732 (yyval
.declarator_list
) = (yyvsp
[(1) - (5)].declarator_list
);
3733 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3739 /* Line 1464 of yacc.c */
3740 #line 827 "glsl_parser.ypp"
3743 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(3) - (6)].identifier
), true, (yyvsp
[(5) - (6)].expression
), NULL
);
3744 decl
->set_location(yylloc
);
3746 (yyval
.declarator_list
) = (yyvsp
[(1) - (6)].declarator_list
);
3747 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3753 /* Line 1464 of yacc.c */
3754 #line 836 "glsl_parser.ypp"
3757 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(3) - (7)].identifier
), true, NULL
, (yyvsp
[(7) - (7)].expression
));
3758 decl
->set_location(yylloc
);
3760 (yyval
.declarator_list
) = (yyvsp
[(1) - (7)].declarator_list
);
3761 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3767 /* Line 1464 of yacc.c */
3768 #line 845 "glsl_parser.ypp"
3771 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(3) - (8)].identifier
), true, (yyvsp
[(5) - (8)].expression
), (yyvsp
[(8) - (8)].expression
));
3772 decl
->set_location(yylloc
);
3774 (yyval
.declarator_list
) = (yyvsp
[(1) - (8)].declarator_list
);
3775 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3781 /* Line 1464 of yacc.c */
3782 #line 854 "glsl_parser.ypp"
3785 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(3) - (5)].identifier
), false, NULL
, (yyvsp
[(5) - (5)].expression
));
3786 decl
->set_location(yylloc
);
3788 (yyval
.declarator_list
) = (yyvsp
[(1) - (5)].declarator_list
);
3789 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3795 /* Line 1464 of yacc.c */
3796 #line 867 "glsl_parser.ypp"
3799 if ((yyvsp
[(1) - (1)].fully_specified_type
)->specifier
->type_specifier
!= ast_struct
) {
3800 _mesa_glsl_error(& (yylsp
[(1) - (1)]), state
, "empty declaration list\n");
3803 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list((yyvsp
[(1) - (1)].fully_specified_type
));
3804 (yyval
.declarator_list
)->set_location(yylloc
);
3811 /* Line 1464 of yacc.c */
3812 #line 878 "glsl_parser.ypp"
3815 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(2) - (2)].identifier
), false, NULL
, NULL
);
3817 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list((yyvsp
[(1) - (2)].fully_specified_type
));
3818 (yyval
.declarator_list
)->set_location(yylloc
);
3819 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3825 /* Line 1464 of yacc.c */
3826 #line 887 "glsl_parser.ypp"
3829 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(2) - (4)].identifier
), true, NULL
, NULL
);
3831 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list((yyvsp
[(1) - (4)].fully_specified_type
));
3832 (yyval
.declarator_list
)->set_location(yylloc
);
3833 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3839 /* Line 1464 of yacc.c */
3840 #line 896 "glsl_parser.ypp"
3843 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(2) - (5)].identifier
), true, (yyvsp
[(4) - (5)].expression
), NULL
);
3845 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list((yyvsp
[(1) - (5)].fully_specified_type
));
3846 (yyval
.declarator_list
)->set_location(yylloc
);
3847 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3853 /* Line 1464 of yacc.c */
3854 #line 905 "glsl_parser.ypp"
3857 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(2) - (6)].identifier
), true, NULL
, (yyvsp
[(6) - (6)].expression
));
3859 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list((yyvsp
[(1) - (6)].fully_specified_type
));
3860 (yyval
.declarator_list
)->set_location(yylloc
);
3861 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3867 /* Line 1464 of yacc.c */
3868 #line 914 "glsl_parser.ypp"
3871 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(2) - (7)].identifier
), true, (yyvsp
[(4) - (7)].expression
), (yyvsp
[(7) - (7)].expression
));
3873 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list((yyvsp
[(1) - (7)].fully_specified_type
));
3874 (yyval
.declarator_list
)->set_location(yylloc
);
3875 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3881 /* Line 1464 of yacc.c */
3882 #line 923 "glsl_parser.ypp"
3885 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(2) - (4)].identifier
), false, NULL
, (yyvsp
[(4) - (4)].expression
));
3887 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list((yyvsp
[(1) - (4)].fully_specified_type
));
3888 (yyval
.declarator_list
)->set_location(yylloc
);
3889 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3895 /* Line 1464 of yacc.c */
3896 #line 932 "glsl_parser.ypp"
3899 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(2) - (2)].identifier
), false, NULL
, NULL
);
3901 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list(NULL
);
3902 (yyval
.declarator_list
)->set_location(yylloc
);
3903 (yyval
.declarator_list
)->invariant
= true;
3905 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3911 /* Line 1464 of yacc.c */
3912 #line 946 "glsl_parser.ypp"
3915 (yyval
.fully_specified_type
) = new(ctx
) ast_fully_specified_type();
3916 (yyval
.fully_specified_type
)->set_location(yylloc
);
3917 (yyval
.fully_specified_type
)->specifier
= (yyvsp
[(1) - (1)].type_specifier
);
3923 /* Line 1464 of yacc.c */
3924 #line 953 "glsl_parser.ypp"
3927 (yyval
.fully_specified_type
) = new(ctx
) ast_fully_specified_type();
3928 (yyval
.fully_specified_type
)->set_location(yylloc
);
3929 (yyval
.fully_specified_type
)->qualifier
= (yyvsp
[(1) - (2)].type_qualifier
).q
;
3930 (yyval
.fully_specified_type
)->specifier
= (yyvsp
[(2) - (2)].type_specifier
);
3936 /* Line 1464 of yacc.c */
3937 #line 963 "glsl_parser.ypp"
3938 { (yyval
.type_qualifier
).i
= 0; ;}
3943 /* Line 1464 of yacc.c */
3944 #line 969 "glsl_parser.ypp"
3946 (yyval
.type_qualifier
) = (yyvsp
[(3) - (4)].type_qualifier
);
3952 /* Line 1464 of yacc.c */
3953 #line 977 "glsl_parser.ypp"
3955 (yyval
.type_qualifier
).i
= (yyvsp
[(1) - (3)].type_qualifier
).i
| (yyvsp
[(3) - (3)].type_qualifier
).i
;
3961 /* Line 1464 of yacc.c */
3962 #line 984 "glsl_parser.ypp"
3964 (yyval
.type_qualifier
).i
= 0;
3966 if (state
->ARB_fragment_coord_conventions_enable
) {
3967 bool got_one
= false;
3969 if (strcmp((yyvsp
[(1) - (1)].identifier
), "origin_upper_left") == 0) {
3971 (yyval
.type_qualifier
).q
.origin_upper_left
= 1;
3972 } else if (strcmp((yyvsp
[(1) - (1)].identifier
), "pixel_center_integer") == 0) {
3974 (yyval
.type_qualifier
).q
.pixel_center_integer
= 1;
3977 if (state
->ARB_fragment_coord_conventions_warn
&& got_one
) {
3978 _mesa_glsl_warning(& (yylsp
[(1) - (1)]), state
,
3979 "GL_ARB_fragment_coord_conventions layout "
3980 "identifier `%s' used\n", (yyvsp
[(1) - (1)].identifier
));
3984 /* If the identifier didn't match any known layout identifiers,
3987 if ((yyval
.type_qualifier
).i
== 0) {
3988 _mesa_glsl_error(& (yylsp
[(1) - (1)]), state
, "unrecognized layout identifier "
3989 "`%s'\n", (yyvsp
[(1) - (1)].identifier
));
3997 /* Line 1464 of yacc.c */
3998 #line 1017 "glsl_parser.ypp"
3999 { (yyval
.type_qualifier
).i
= 0; (yyval
.type_qualifier
).q
.smooth
= 1; ;}
4004 /* Line 1464 of yacc.c */
4005 #line 1018 "glsl_parser.ypp"
4006 { (yyval
.type_qualifier
).i
= 0; (yyval
.type_qualifier
).q
.flat
= 1; ;}
4011 /* Line 1464 of yacc.c */
4012 #line 1019 "glsl_parser.ypp"
4013 { (yyval
.type_qualifier
).i
= 0; (yyval
.type_qualifier
).q
.noperspective
= 1; ;}
4018 /* Line 1464 of yacc.c */
4019 #line 1023 "glsl_parser.ypp"
4020 { (yyval
.type_qualifier
).i
= 0; (yyval
.type_qualifier
).q
.constant
= 1; ;}
4025 /* Line 1464 of yacc.c */
4026 #line 1029 "glsl_parser.ypp"
4028 (yyval
.type_qualifier
).i
= (yyvsp
[(1) - (2)].type_qualifier
).i
| (yyvsp
[(2) - (2)].type_qualifier
).i
;
4034 /* Line 1464 of yacc.c */
4035 #line 1033 "glsl_parser.ypp"
4037 (yyval
.type_qualifier
) = (yyvsp
[(2) - (2)].type_qualifier
);
4038 (yyval
.type_qualifier
).q
.invariant
= 1;
4044 /* Line 1464 of yacc.c */
4045 #line 1040 "glsl_parser.ypp"
4046 { (yyval
.type_qualifier
).i
= 0; (yyval
.type_qualifier
).q
.constant
= 1; ;}
4051 /* Line 1464 of yacc.c */
4052 #line 1041 "glsl_parser.ypp"
4053 { (yyval
.type_qualifier
).i
= 0; (yyval
.type_qualifier
).q
.attribute
= 1; ;}
4058 /* Line 1464 of yacc.c */
4059 #line 1042 "glsl_parser.ypp"
4060 { (yyval
.type_qualifier
).i
= (yyvsp
[(1) - (2)].type_qualifier
).i
; (yyval
.type_qualifier
).q
.varying
= 1; ;}
4065 /* Line 1464 of yacc.c */
4066 #line 1043 "glsl_parser.ypp"
4067 { (yyval
.type_qualifier
).i
= 0; (yyval
.type_qualifier
).q
.centroid
= 1; (yyval
.type_qualifier
).q
.varying
= 1; ;}
4072 /* Line 1464 of yacc.c */
4073 #line 1044 "glsl_parser.ypp"
4074 { (yyval
.type_qualifier
).i
= 0; (yyval
.type_qualifier
).q
.in
= 1; ;}
4079 /* Line 1464 of yacc.c */
4080 #line 1045 "glsl_parser.ypp"
4081 { (yyval
.type_qualifier
).i
= 0; (yyval
.type_qualifier
).q
.out
= 1; ;}
4086 /* Line 1464 of yacc.c */
4087 #line 1046 "glsl_parser.ypp"
4088 { (yyval
.type_qualifier
).i
= 0; (yyval
.type_qualifier
).q
.centroid
= 1; (yyval
.type_qualifier
).q
.in
= 1; ;}
4093 /* Line 1464 of yacc.c */
4094 #line 1047 "glsl_parser.ypp"
4095 { (yyval
.type_qualifier
).i
= 0; (yyval
.type_qualifier
).q
.centroid
= 1; (yyval
.type_qualifier
).q
.out
= 1; ;}
4100 /* Line 1464 of yacc.c */
4101 #line 1048 "glsl_parser.ypp"
4102 { (yyval
.type_qualifier
).i
= 0; (yyval
.type_qualifier
).q
.uniform
= 1; ;}
4107 /* Line 1464 of yacc.c */
4108 #line 1054 "glsl_parser.ypp"
4110 (yyval
.type_specifier
) = (yyvsp
[(2) - (2)].type_specifier
);
4111 (yyval
.type_specifier
)->precision
= (yyvsp
[(1) - (2)].n
);
4117 /* Line 1464 of yacc.c */
4118 #line 1063 "glsl_parser.ypp"
4120 (yyval
.type_specifier
) = (yyvsp
[(1) - (3)].type_specifier
);
4121 (yyval
.type_specifier
)->is_array
= true;
4122 (yyval
.type_specifier
)->array_size
= NULL
;
4128 /* Line 1464 of yacc.c */
4129 #line 1069 "glsl_parser.ypp"
4131 (yyval
.type_specifier
) = (yyvsp
[(1) - (4)].type_specifier
);
4132 (yyval
.type_specifier
)->is_array
= true;
4133 (yyval
.type_specifier
)->array_size
= (yyvsp
[(3) - (4)].expression
);
4139 /* Line 1464 of yacc.c */
4140 #line 1078 "glsl_parser.ypp"
4143 (yyval
.type_specifier
) = new(ctx
) ast_type_specifier((yyvsp
[(1) - (1)].n
));
4144 (yyval
.type_specifier
)->set_location(yylloc
);
4150 /* Line 1464 of yacc.c */
4151 #line 1084 "glsl_parser.ypp"
4154 (yyval
.type_specifier
) = new(ctx
) ast_type_specifier((yyvsp
[(1) - (1)].struct_specifier
));
4155 (yyval
.type_specifier
)->set_location(yylloc
);
4161 /* Line 1464 of yacc.c */
4162 #line 1090 "glsl_parser.ypp"
4165 (yyval
.type_specifier
) = new(ctx
) ast_type_specifier((yyvsp
[(1) - (1)].identifier
));
4166 (yyval
.type_specifier
)->set_location(yylloc
);
4172 /* Line 1464 of yacc.c */
4173 #line 1098 "glsl_parser.ypp"
4174 { (yyval
.n
) = ast_void
; ;}
4179 /* Line 1464 of yacc.c */
4180 #line 1099 "glsl_parser.ypp"
4181 { (yyval
.n
) = ast_float
; ;}
4186 /* Line 1464 of yacc.c */
4187 #line 1100 "glsl_parser.ypp"
4188 { (yyval
.n
) = ast_int
; ;}
4193 /* Line 1464 of yacc.c */
4194 #line 1101 "glsl_parser.ypp"
4195 { (yyval
.n
) = ast_uint
; ;}
4200 /* Line 1464 of yacc.c */
4201 #line 1102 "glsl_parser.ypp"
4202 { (yyval
.n
) = ast_bool
; ;}
4207 /* Line 1464 of yacc.c */
4208 #line 1103 "glsl_parser.ypp"
4209 { (yyval
.n
) = ast_vec2
; ;}
4214 /* Line 1464 of yacc.c */
4215 #line 1104 "glsl_parser.ypp"
4216 { (yyval
.n
) = ast_vec3
; ;}
4221 /* Line 1464 of yacc.c */
4222 #line 1105 "glsl_parser.ypp"
4223 { (yyval
.n
) = ast_vec4
; ;}
4228 /* Line 1464 of yacc.c */
4229 #line 1106 "glsl_parser.ypp"
4230 { (yyval
.n
) = ast_bvec2
; ;}
4235 /* Line 1464 of yacc.c */
4236 #line 1107 "glsl_parser.ypp"
4237 { (yyval
.n
) = ast_bvec3
; ;}
4242 /* Line 1464 of yacc.c */
4243 #line 1108 "glsl_parser.ypp"
4244 { (yyval
.n
) = ast_bvec4
; ;}
4249 /* Line 1464 of yacc.c */
4250 #line 1109 "glsl_parser.ypp"
4251 { (yyval
.n
) = ast_ivec2
; ;}
4256 /* Line 1464 of yacc.c */
4257 #line 1110 "glsl_parser.ypp"
4258 { (yyval
.n
) = ast_ivec3
; ;}
4263 /* Line 1464 of yacc.c */
4264 #line 1111 "glsl_parser.ypp"
4265 { (yyval
.n
) = ast_ivec4
; ;}
4270 /* Line 1464 of yacc.c */
4271 #line 1112 "glsl_parser.ypp"
4272 { (yyval
.n
) = ast_uvec2
; ;}
4277 /* Line 1464 of yacc.c */
4278 #line 1113 "glsl_parser.ypp"
4279 { (yyval
.n
) = ast_uvec3
; ;}
4284 /* Line 1464 of yacc.c */
4285 #line 1114 "glsl_parser.ypp"
4286 { (yyval
.n
) = ast_uvec4
; ;}
4291 /* Line 1464 of yacc.c */
4292 #line 1115 "glsl_parser.ypp"
4293 { (yyval
.n
) = ast_mat2
; ;}
4298 /* Line 1464 of yacc.c */
4299 #line 1116 "glsl_parser.ypp"
4300 { (yyval
.n
) = ast_mat2x3
; ;}
4305 /* Line 1464 of yacc.c */
4306 #line 1117 "glsl_parser.ypp"
4307 { (yyval
.n
) = ast_mat2x4
; ;}
4312 /* Line 1464 of yacc.c */
4313 #line 1118 "glsl_parser.ypp"
4314 { (yyval
.n
) = ast_mat3x2
; ;}
4319 /* Line 1464 of yacc.c */
4320 #line 1119 "glsl_parser.ypp"
4321 { (yyval
.n
) = ast_mat3
; ;}
4326 /* Line 1464 of yacc.c */
4327 #line 1120 "glsl_parser.ypp"
4328 { (yyval
.n
) = ast_mat3x4
; ;}
4333 /* Line 1464 of yacc.c */
4334 #line 1121 "glsl_parser.ypp"
4335 { (yyval
.n
) = ast_mat4x2
; ;}
4340 /* Line 1464 of yacc.c */
4341 #line 1122 "glsl_parser.ypp"
4342 { (yyval
.n
) = ast_mat4x3
; ;}
4347 /* Line 1464 of yacc.c */
4348 #line 1123 "glsl_parser.ypp"
4349 { (yyval
.n
) = ast_mat4
; ;}
4354 /* Line 1464 of yacc.c */
4355 #line 1124 "glsl_parser.ypp"
4356 { (yyval
.n
) = ast_sampler1d
; ;}
4361 /* Line 1464 of yacc.c */
4362 #line 1125 "glsl_parser.ypp"
4363 { (yyval
.n
) = ast_sampler2d
; ;}
4368 /* Line 1464 of yacc.c */
4369 #line 1126 "glsl_parser.ypp"
4370 { (yyval
.n
) = ast_sampler2drect
; ;}
4375 /* Line 1464 of yacc.c */
4376 #line 1127 "glsl_parser.ypp"
4377 { (yyval
.n
) = ast_sampler3d
; ;}
4382 /* Line 1464 of yacc.c */
4383 #line 1128 "glsl_parser.ypp"
4384 { (yyval
.n
) = ast_samplercube
; ;}
4389 /* Line 1464 of yacc.c */
4390 #line 1129 "glsl_parser.ypp"
4391 { (yyval
.n
) = ast_sampler1dshadow
; ;}
4396 /* Line 1464 of yacc.c */
4397 #line 1130 "glsl_parser.ypp"
4398 { (yyval
.n
) = ast_sampler2dshadow
; ;}
4403 /* Line 1464 of yacc.c */
4404 #line 1131 "glsl_parser.ypp"
4405 { (yyval
.n
) = ast_sampler2drectshadow
; ;}
4410 /* Line 1464 of yacc.c */
4411 #line 1132 "glsl_parser.ypp"
4412 { (yyval
.n
) = ast_samplercubeshadow
; ;}
4417 /* Line 1464 of yacc.c */
4418 #line 1133 "glsl_parser.ypp"
4419 { (yyval
.n
) = ast_sampler1darray
; ;}
4424 /* Line 1464 of yacc.c */
4425 #line 1134 "glsl_parser.ypp"
4426 { (yyval
.n
) = ast_sampler2darray
; ;}
4431 /* Line 1464 of yacc.c */
4432 #line 1135 "glsl_parser.ypp"
4433 { (yyval
.n
) = ast_sampler1darrayshadow
; ;}
4438 /* Line 1464 of yacc.c */
4439 #line 1136 "glsl_parser.ypp"
4440 { (yyval
.n
) = ast_sampler2darrayshadow
; ;}
4445 /* Line 1464 of yacc.c */
4446 #line 1137 "glsl_parser.ypp"
4447 { (yyval
.n
) = ast_isampler1d
; ;}
4452 /* Line 1464 of yacc.c */
4453 #line 1138 "glsl_parser.ypp"
4454 { (yyval
.n
) = ast_isampler2d
; ;}
4459 /* Line 1464 of yacc.c */
4460 #line 1139 "glsl_parser.ypp"
4461 { (yyval
.n
) = ast_isampler3d
; ;}
4466 /* Line 1464 of yacc.c */
4467 #line 1140 "glsl_parser.ypp"
4468 { (yyval
.n
) = ast_isamplercube
; ;}
4473 /* Line 1464 of yacc.c */
4474 #line 1141 "glsl_parser.ypp"
4475 { (yyval
.n
) = ast_isampler1darray
; ;}
4480 /* Line 1464 of yacc.c */
4481 #line 1142 "glsl_parser.ypp"
4482 { (yyval
.n
) = ast_isampler2darray
; ;}
4487 /* Line 1464 of yacc.c */
4488 #line 1143 "glsl_parser.ypp"
4489 { (yyval
.n
) = ast_usampler1d
; ;}
4494 /* Line 1464 of yacc.c */
4495 #line 1144 "glsl_parser.ypp"
4496 { (yyval
.n
) = ast_usampler2d
; ;}
4501 /* Line 1464 of yacc.c */
4502 #line 1145 "glsl_parser.ypp"
4503 { (yyval
.n
) = ast_usampler3d
; ;}
4508 /* Line 1464 of yacc.c */
4509 #line 1146 "glsl_parser.ypp"
4510 { (yyval
.n
) = ast_usamplercube
; ;}
4515 /* Line 1464 of yacc.c */
4516 #line 1147 "glsl_parser.ypp"
4517 { (yyval
.n
) = ast_usampler1darray
; ;}
4522 /* Line 1464 of yacc.c */
4523 #line 1148 "glsl_parser.ypp"
4524 { (yyval
.n
) = ast_usampler2darray
; ;}
4529 /* Line 1464 of yacc.c */
4530 #line 1152 "glsl_parser.ypp"
4532 if (!state
->es_shader
&& state
->language_version
< 130)
4533 _mesa_glsl_error(& (yylsp
[(1) - (1)]), state
,
4534 "precision qualifier forbidden "
4535 "in GLSL %d.%d (1.30 or later "
4537 state
->language_version
/ 100,
4538 state
->language_version
% 100);
4540 (yyval
.n
) = ast_precision_high
;
4546 /* Line 1464 of yacc.c */
4547 #line 1163 "glsl_parser.ypp"
4549 if (!state
->es_shader
&& state
->language_version
< 130)
4550 _mesa_glsl_error(& (yylsp
[(1) - (1)]), state
,
4551 "precision qualifier forbidden "
4552 "in GLSL %d.%d (1.30 or later "
4554 state
->language_version
/ 100,
4555 state
->language_version
% 100);
4557 (yyval
.n
) = ast_precision_medium
;
4563 /* Line 1464 of yacc.c */
4564 #line 1174 "glsl_parser.ypp"
4566 if (!state
->es_shader
&& state
->language_version
< 130)
4567 _mesa_glsl_error(& (yylsp
[(1) - (1)]), state
,
4568 "precision qualifier forbidden "
4569 "in GLSL %d.%d (1.30 or later "
4571 state
->language_version
/ 100,
4572 state
->language_version
% 100);
4574 (yyval
.n
) = ast_precision_low
;
4580 /* Line 1464 of yacc.c */
4581 #line 1189 "glsl_parser.ypp"
4584 (yyval
.struct_specifier
) = new(ctx
) ast_struct_specifier((yyvsp
[(2) - (5)].identifier
), (yyvsp
[(4) - (5)].node
));
4585 (yyval
.struct_specifier
)->set_location(yylloc
);
4591 /* Line 1464 of yacc.c */
4592 #line 1195 "glsl_parser.ypp"
4595 (yyval
.struct_specifier
) = new(ctx
) ast_struct_specifier(NULL
, (yyvsp
[(3) - (4)].node
));
4596 (yyval
.struct_specifier
)->set_location(yylloc
);
4602 /* Line 1464 of yacc.c */
4603 #line 1204 "glsl_parser.ypp"
4605 (yyval
.node
) = (ast_node
*) (yyvsp
[(1) - (1)].declarator_list
);
4606 (yyvsp
[(1) - (1)].declarator_list
)->link
.self_link();
4612 /* Line 1464 of yacc.c */
4613 #line 1209 "glsl_parser.ypp"
4615 (yyval
.node
) = (ast_node
*) (yyvsp
[(1) - (2)].node
);
4616 (yyval
.node
)->link
.insert_before(& (yyvsp
[(2) - (2)].declarator_list
)->link
);
4622 /* Line 1464 of yacc.c */
4623 #line 1217 "glsl_parser.ypp"
4626 ast_fully_specified_type
*type
= new(ctx
) ast_fully_specified_type();
4627 type
->set_location(yylloc
);
4629 type
->specifier
= (yyvsp
[(1) - (3)].type_specifier
);
4630 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list(type
);
4631 (yyval
.declarator_list
)->set_location(yylloc
);
4633 (yyval
.declarator_list
)->declarations
.push_degenerate_list_at_head(& (yyvsp
[(2) - (3)].declaration
)->link
);
4639 /* Line 1464 of yacc.c */
4640 #line 1232 "glsl_parser.ypp"
4642 (yyval
.declaration
) = (yyvsp
[(1) - (1)].declaration
);
4643 (yyvsp
[(1) - (1)].declaration
)->link
.self_link();
4649 /* Line 1464 of yacc.c */
4650 #line 1237 "glsl_parser.ypp"
4652 (yyval
.declaration
) = (yyvsp
[(1) - (3)].declaration
);
4653 (yyval
.declaration
)->link
.insert_before(& (yyvsp
[(3) - (3)].declaration
)->link
);
4659 /* Line 1464 of yacc.c */
4660 #line 1245 "glsl_parser.ypp"
4663 (yyval
.declaration
) = new(ctx
) ast_declaration((yyvsp
[(1) - (1)].identifier
), false, NULL
, NULL
);
4664 (yyval
.declaration
)->set_location(yylloc
);
4670 /* Line 1464 of yacc.c */
4671 #line 1251 "glsl_parser.ypp"
4674 (yyval
.declaration
) = new(ctx
) ast_declaration((yyvsp
[(1) - (4)].identifier
), true, (yyvsp
[(3) - (4)].expression
), NULL
);
4675 (yyval
.declaration
)->set_location(yylloc
);
4681 /* Line 1464 of yacc.c */
4682 #line 1269 "glsl_parser.ypp"
4683 { (yyval
.node
) = (ast_node
*) (yyvsp
[(1) - (1)].compound_statement
); ;}
4688 /* Line 1464 of yacc.c */
4689 #line 1277 "glsl_parser.ypp"
4690 { (yyval
.node
) = NULL
; ;}
4695 /* Line 1464 of yacc.c */
4696 #line 1278 "glsl_parser.ypp"
4697 { (yyval
.node
) = NULL
; ;}
4702 /* Line 1464 of yacc.c */
4703 #line 1285 "glsl_parser.ypp"
4706 (yyval
.compound_statement
) = new(ctx
) ast_compound_statement(true, NULL
);
4707 (yyval
.compound_statement
)->set_location(yylloc
);
4713 /* Line 1464 of yacc.c */
4714 #line 1291 "glsl_parser.ypp"
4717 (yyval
.compound_statement
) = new(ctx
) ast_compound_statement(true, (yyvsp
[(2) - (3)].node
));
4718 (yyval
.compound_statement
)->set_location(yylloc
);
4724 /* Line 1464 of yacc.c */
4725 #line 1299 "glsl_parser.ypp"
4726 { (yyval
.node
) = (ast_node
*) (yyvsp
[(1) - (1)].compound_statement
); ;}
4731 /* Line 1464 of yacc.c */
4732 #line 1305 "glsl_parser.ypp"
4735 (yyval
.compound_statement
) = new(ctx
) ast_compound_statement(false, NULL
);
4736 (yyval
.compound_statement
)->set_location(yylloc
);
4742 /* Line 1464 of yacc.c */
4743 #line 1311 "glsl_parser.ypp"
4746 (yyval
.compound_statement
) = new(ctx
) ast_compound_statement(false, (yyvsp
[(2) - (3)].node
));
4747 (yyval
.compound_statement
)->set_location(yylloc
);
4753 /* Line 1464 of yacc.c */
4754 #line 1320 "glsl_parser.ypp"
4756 if ((yyvsp
[(1) - (1)].node
) == NULL
) {
4757 _mesa_glsl_error(& (yylsp
[(1) - (1)]), state
, "<nil> statement\n");
4758 assert((yyvsp
[(1) - (1)].node
) != NULL
);
4761 (yyval
.node
) = (yyvsp
[(1) - (1)].node
);
4762 (yyval
.node
)->link
.self_link();
4768 /* Line 1464 of yacc.c */
4769 #line 1330 "glsl_parser.ypp"
4771 if ((yyvsp
[(2) - (2)].node
) == NULL
) {
4772 _mesa_glsl_error(& (yylsp
[(2) - (2)]), state
, "<nil> statement\n");
4773 assert((yyvsp
[(2) - (2)].node
) != NULL
);
4775 (yyval
.node
) = (yyvsp
[(1) - (2)].node
);
4776 (yyval
.node
)->link
.insert_before(& (yyvsp
[(2) - (2)].node
)->link
);
4782 /* Line 1464 of yacc.c */
4783 #line 1342 "glsl_parser.ypp"
4786 (yyval
.node
) = new(ctx
) ast_expression_statement(NULL
);
4787 (yyval
.node
)->set_location(yylloc
);
4793 /* Line 1464 of yacc.c */
4794 #line 1348 "glsl_parser.ypp"
4797 (yyval
.node
) = new(ctx
) ast_expression_statement((yyvsp
[(1) - (2)].expression
));
4798 (yyval
.node
)->set_location(yylloc
);
4804 /* Line 1464 of yacc.c */
4805 #line 1357 "glsl_parser.ypp"
4807 (yyval
.node
) = new(state
) ast_selection_statement((yyvsp
[(3) - (5)].expression
), (yyvsp
[(5) - (5)].selection_rest_statement
).then_statement
,
4808 (yyvsp
[(5) - (5)].selection_rest_statement
).else_statement
);
4809 (yyval
.node
)->set_location(yylloc
);
4815 /* Line 1464 of yacc.c */
4816 #line 1366 "glsl_parser.ypp"
4818 (yyval
.selection_rest_statement
).then_statement
= (yyvsp
[(1) - (3)].node
);
4819 (yyval
.selection_rest_statement
).else_statement
= (yyvsp
[(3) - (3)].node
);
4825 /* Line 1464 of yacc.c */
4826 #line 1371 "glsl_parser.ypp"
4828 (yyval
.selection_rest_statement
).then_statement
= (yyvsp
[(1) - (1)].node
);
4829 (yyval
.selection_rest_statement
).else_statement
= NULL
;
4835 /* Line 1464 of yacc.c */
4836 #line 1379 "glsl_parser.ypp"
4838 (yyval
.node
) = (ast_node
*) (yyvsp
[(1) - (1)].expression
);
4844 /* Line 1464 of yacc.c */
4845 #line 1383 "glsl_parser.ypp"
4848 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(2) - (4)].identifier
), false, NULL
, (yyvsp
[(4) - (4)].expression
));
4849 ast_declarator_list
*declarator
= new(ctx
) ast_declarator_list((yyvsp
[(1) - (4)].fully_specified_type
));
4850 decl
->set_location(yylloc
);
4851 declarator
->set_location(yylloc
);
4853 declarator
->declarations
.push_tail(&decl
->link
);
4854 (yyval
.node
) = declarator
;
4860 /* Line 1464 of yacc.c */
4861 #line 1406 "glsl_parser.ypp"
4864 (yyval
.node
) = new(ctx
) ast_iteration_statement(ast_iteration_statement::ast_while
,
4865 NULL
, (yyvsp
[(3) - (5)].node
), NULL
, (yyvsp
[(5) - (5)].node
));
4866 (yyval
.node
)->set_location(yylloc
);
4872 /* Line 1464 of yacc.c */
4873 #line 1413 "glsl_parser.ypp"
4876 (yyval
.node
) = new(ctx
) ast_iteration_statement(ast_iteration_statement::ast_do_while
,
4877 NULL
, (yyvsp
[(5) - (7)].expression
), NULL
, (yyvsp
[(2) - (7)].node
));
4878 (yyval
.node
)->set_location(yylloc
);
4884 /* Line 1464 of yacc.c */
4885 #line 1420 "glsl_parser.ypp"
4888 (yyval
.node
) = new(ctx
) ast_iteration_statement(ast_iteration_statement::ast_for
,
4889 (yyvsp
[(3) - (6)].node
), (yyvsp
[(4) - (6)].for_rest_statement
).cond
, (yyvsp
[(4) - (6)].for_rest_statement
).rest
, (yyvsp
[(6) - (6)].node
));
4890 (yyval
.node
)->set_location(yylloc
);
4896 /* Line 1464 of yacc.c */
4897 #line 1436 "glsl_parser.ypp"
4899 (yyval
.node
) = NULL
;
4905 /* Line 1464 of yacc.c */
4906 #line 1443 "glsl_parser.ypp"
4908 (yyval
.for_rest_statement
).cond
= (yyvsp
[(1) - (2)].node
);
4909 (yyval
.for_rest_statement
).rest
= NULL
;
4915 /* Line 1464 of yacc.c */
4916 #line 1448 "glsl_parser.ypp"
4918 (yyval
.for_rest_statement
).cond
= (yyvsp
[(1) - (3)].node
);
4919 (yyval
.for_rest_statement
).rest
= (yyvsp
[(3) - (3)].expression
);
4925 /* Line 1464 of yacc.c */
4926 #line 1457 "glsl_parser.ypp"
4929 (yyval
.node
) = new(ctx
) ast_jump_statement(ast_jump_statement::ast_continue
, NULL
);
4930 (yyval
.node
)->set_location(yylloc
);
4936 /* Line 1464 of yacc.c */
4937 #line 1463 "glsl_parser.ypp"
4940 (yyval
.node
) = new(ctx
) ast_jump_statement(ast_jump_statement::ast_break
, NULL
);
4941 (yyval
.node
)->set_location(yylloc
);
4947 /* Line 1464 of yacc.c */
4948 #line 1469 "glsl_parser.ypp"
4951 (yyval
.node
) = new(ctx
) ast_jump_statement(ast_jump_statement::ast_return
, NULL
);
4952 (yyval
.node
)->set_location(yylloc
);
4958 /* Line 1464 of yacc.c */
4959 #line 1475 "glsl_parser.ypp"
4962 (yyval
.node
) = new(ctx
) ast_jump_statement(ast_jump_statement::ast_return
, (yyvsp
[(2) - (3)].expression
));
4963 (yyval
.node
)->set_location(yylloc
);
4969 /* Line 1464 of yacc.c */
4970 #line 1481 "glsl_parser.ypp"
4973 (yyval
.node
) = new(ctx
) ast_jump_statement(ast_jump_statement::ast_discard
, NULL
);
4974 (yyval
.node
)->set_location(yylloc
);
4980 /* Line 1464 of yacc.c */
4981 #line 1489 "glsl_parser.ypp"
4982 { (yyval
.node
) = (yyvsp
[(1) - (1)].function_definition
); ;}
4987 /* Line 1464 of yacc.c */
4988 #line 1490 "glsl_parser.ypp"
4989 { (yyval
.node
) = (yyvsp
[(1) - (1)].node
); ;}
4994 /* Line 1464 of yacc.c */
4995 #line 1491 "glsl_parser.ypp"
4996 { (yyval
.node
) = NULL
; ;}
5001 /* Line 1464 of yacc.c */
5002 #line 1496 "glsl_parser.ypp"
5005 (yyval
.function_definition
) = new(ctx
) ast_function_definition();
5006 (yyval
.function_definition
)->set_location(yylloc
);
5007 (yyval
.function_definition
)->prototype
= (yyvsp
[(1) - (2)].function
);
5008 (yyval
.function_definition
)->body
= (yyvsp
[(2) - (2)].compound_statement
);
5014 /* Line 1464 of yacc.c */
5015 #line 5016 "glsl_parser.cpp"
5018 YY_SYMBOL_PRINT ("-> $$ =", yyr1
[yyn
], &yyval
, &yyloc
);
5022 YY_STACK_PRINT (yyss
, yyssp
);
5027 /* Now `shift' the result of the reduction. Determine what state
5028 that goes to, based on the state we popped back to and the rule
5029 number reduced by. */
5033 yystate
= yypgoto
[yyn
- YYNTOKENS
] + *yyssp
;
5034 if (0 <= yystate
&& yystate
<= YYLAST
&& yycheck
[yystate
] == *yyssp
)
5035 yystate
= yytable
[yystate
];
5037 yystate
= yydefgoto
[yyn
- YYNTOKENS
];
5042 /*------------------------------------.
5043 | yyerrlab -- here on detecting error |
5044 `------------------------------------*/
5046 /* If not already recovering from an error, report this error. */
5050 #if ! YYERROR_VERBOSE
5051 yyerror (&yylloc
, state
, YY_("syntax error"));
5054 YYSIZE_T yysize
= yysyntax_error (0, yystate
, yychar
);
5055 if (yymsg_alloc
< yysize
&& yymsg_alloc
< YYSTACK_ALLOC_MAXIMUM
)
5057 YYSIZE_T yyalloc
= 2 * yysize
;
5058 if (! (yysize
<= yyalloc
&& yyalloc
<= YYSTACK_ALLOC_MAXIMUM
))
5059 yyalloc
= YYSTACK_ALLOC_MAXIMUM
;
5060 if (yymsg
!= yymsgbuf
)
5061 YYSTACK_FREE (yymsg
);
5062 yymsg
= (char *) YYSTACK_ALLOC (yyalloc
);
5064 yymsg_alloc
= yyalloc
;
5068 yymsg_alloc
= sizeof yymsgbuf
;
5072 if (0 < yysize
&& yysize
<= yymsg_alloc
)
5074 (void) yysyntax_error (yymsg
, yystate
, yychar
);
5075 yyerror (&yylloc
, state
, yymsg
);
5079 yyerror (&yylloc
, state
, YY_("syntax error"));
5081 goto yyexhaustedlab
;
5087 yyerror_range
[1] = yylloc
;
5089 if (yyerrstatus
== 3)
5091 /* If just tried and failed to reuse lookahead token after an
5092 error, discard it. */
5094 if (yychar
<= YYEOF
)
5096 /* Return failure if at end of input. */
5097 if (yychar
== YYEOF
)
5102 yydestruct ("Error: discarding",
5103 yytoken
, &yylval
, &yylloc
, state
);
5108 /* Else will try to reuse lookahead token after shifting the error
5113 /*---------------------------------------------------.
5114 | yyerrorlab -- error raised explicitly by YYERROR. |
5115 `---------------------------------------------------*/
5118 /* Pacify compilers like GCC when the user code never invokes
5119 YYERROR and the label yyerrorlab therefore never appears in user
5121 if (/*CONSTCOND*/ 0)
5124 yyerror_range
[1] = yylsp
[1-yylen
];
5125 /* Do not reclaim the symbols of the rule which action triggered
5129 YY_STACK_PRINT (yyss
, yyssp
);
5134 /*-------------------------------------------------------------.
5135 | yyerrlab1 -- common code for both syntax error and YYERROR. |
5136 `-------------------------------------------------------------*/
5138 yyerrstatus
= 3; /* Each real token shifted decrements this. */
5142 yyn
= yypact
[yystate
];
5143 if (yyn
!= YYPACT_NINF
)
5146 if (0 <= yyn
&& yyn
<= YYLAST
&& yycheck
[yyn
] == YYTERROR
)
5154 /* Pop the current state because it cannot handle the error token. */
5158 yyerror_range
[1] = *yylsp
;
5159 yydestruct ("Error: popping",
5160 yystos
[yystate
], yyvsp
, yylsp
, state
);
5163 YY_STACK_PRINT (yyss
, yyssp
);
5168 yyerror_range
[2] = yylloc
;
5169 /* Using YYLLOC is tempting, but would change the location of
5170 the lookahead. YYLOC is available though. */
5171 YYLLOC_DEFAULT (yyloc
, yyerror_range
, 2);
5174 /* Shift the error token. */
5175 YY_SYMBOL_PRINT ("Shifting", yystos
[yyn
], yyvsp
, yylsp
);
5181 /*-------------------------------------.
5182 | yyacceptlab -- YYACCEPT comes here. |
5183 `-------------------------------------*/
5188 /*-----------------------------------.
5189 | yyabortlab -- YYABORT comes here. |
5190 `-----------------------------------*/
5195 #if !defined(yyoverflow) || YYERROR_VERBOSE
5196 /*-------------------------------------------------.
5197 | yyexhaustedlab -- memory exhaustion comes here. |
5198 `-------------------------------------------------*/
5200 yyerror (&yylloc
, state
, YY_("memory exhausted"));
5206 if (yychar
!= YYEMPTY
)
5207 yydestruct ("Cleanup: discarding lookahead",
5208 yytoken
, &yylval
, &yylloc
, state
);
5209 /* Do not reclaim the symbols of the rule which action triggered
5210 this YYABORT or YYACCEPT. */
5212 YY_STACK_PRINT (yyss
, yyssp
);
5213 while (yyssp
!= yyss
)
5215 yydestruct ("Cleanup: popping",
5216 yystos
[*yyssp
], yyvsp
, yylsp
, state
);
5221 YYSTACK_FREE (yyss
);
5224 if (yymsg
!= yymsgbuf
)
5225 YYSTACK_FREE (yymsg
);
5227 /* Make sure YYID is used. */
5228 return YYID (yyresult
);