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.yy"
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,
217 TYPE_IDENTIFIER
= 332,
218 NEW_IDENTIFIER
= 333,
223 FIELD_SELECTION
= 338,
258 PRAGMA_DEBUG_ON
= 373,
259 PRAGMA_DEBUG_OFF
= 374,
260 PRAGMA_OPTIMIZE_ON
= 375,
261 PRAGMA_OPTIMIZE_OFF
= 376,
262 PRAGMA_INVARIANT_ALL
= 377,
299 SAMPLER2DRECTSHADOW
= 414,
333 IMAGE1DARRAYSHADOW
= 448,
334 IMAGE2DARRAYSHADOW
= 449,
341 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
342 typedef union YYSTYPE
345 /* Line 214 of yacc.c */
346 #line 52 "glsl_parser.yy"
352 struct ast_type_qualifier type_qualifier
;
355 ast_type_specifier
*type_specifier
;
356 ast_fully_specified_type
*fully_specified_type
;
357 ast_function
*function
;
358 ast_parameter_declarator
*parameter_declarator
;
359 ast_function_definition
*function_definition
;
360 ast_compound_statement
*compound_statement
;
361 ast_expression
*expression
;
362 ast_declarator_list
*declarator_list
;
363 ast_struct_specifier
*struct_specifier
;
364 ast_declaration
*declaration
;
368 ast_expression
*rest
;
369 } for_rest_statement
;
372 ast_node
*then_statement
;
373 ast_node
*else_statement
;
374 } selection_rest_statement
;
378 /* Line 214 of yacc.c */
379 #line 380 "glsl_parser.cpp"
381 # define YYSTYPE_IS_TRIVIAL 1
382 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
383 # define YYSTYPE_IS_DECLARED 1
386 #if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED
387 typedef struct YYLTYPE
394 # define yyltype YYLTYPE /* obsolescent; will be withdrawn */
395 # define YYLTYPE_IS_DECLARED 1
396 # define YYLTYPE_IS_TRIVIAL 1
400 /* Copy the second part of user declarations. */
403 /* Line 264 of yacc.c */
404 #line 405 "glsl_parser.cpp"
411 typedef YYTYPE_UINT8 yytype_uint8
;
413 typedef unsigned char yytype_uint8
;
417 typedef YYTYPE_INT8 yytype_int8
;
418 #elif (defined __STDC__ || defined __C99__FUNC__ \
419 || defined __cplusplus || defined _MSC_VER)
420 typedef signed char yytype_int8
;
422 typedef short int yytype_int8
;
426 typedef YYTYPE_UINT16 yytype_uint16
;
428 typedef unsigned short int yytype_uint16
;
432 typedef YYTYPE_INT16 yytype_int16
;
434 typedef short int yytype_int16
;
438 # ifdef __SIZE_TYPE__
439 # define YYSIZE_T __SIZE_TYPE__
440 # elif defined size_t
441 # define YYSIZE_T size_t
442 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
443 || defined __cplusplus || defined _MSC_VER)
444 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
445 # define YYSIZE_T size_t
447 # define YYSIZE_T unsigned int
451 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
454 # if defined YYENABLE_NLS && YYENABLE_NLS
456 # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
457 # define YY_(msgid) dgettext ("bison-runtime", msgid)
461 # define YY_(msgid) msgid
465 /* Suppress unused-variable warnings by "using" E. */
466 #if ! defined lint || defined __GNUC__
467 # define YYUSE(e) ((void) (e))
469 # define YYUSE(e) /* empty */
472 /* Identity function, used to suppress warnings about constant conditions. */
476 #if (defined __STDC__ || defined __C99__FUNC__ \
477 || defined __cplusplus || defined _MSC_VER)
490 #if ! defined yyoverflow || YYERROR_VERBOSE
492 /* The parser invokes alloca or malloc; define the necessary symbols. */
494 # ifdef YYSTACK_USE_ALLOCA
495 # if YYSTACK_USE_ALLOCA
497 # define YYSTACK_ALLOC __builtin_alloca
498 # elif defined __BUILTIN_VA_ARG_INCR
499 # include <alloca.h> /* INFRINGES ON USER NAME SPACE */
501 # define YYSTACK_ALLOC __alloca
502 # elif defined _MSC_VER
503 # include <malloc.h> /* INFRINGES ON USER NAME SPACE */
504 # define alloca _alloca
506 # define YYSTACK_ALLOC alloca
507 # if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
508 || defined __cplusplus || defined _MSC_VER)
509 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
518 # ifdef YYSTACK_ALLOC
519 /* Pacify GCC's `empty if-body' warning. */
520 # define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
521 # ifndef YYSTACK_ALLOC_MAXIMUM
522 /* The OS might guarantee only one guard page at the bottom of the stack,
523 and a page size can be as small as 4096 bytes. So we cannot safely
524 invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
525 to allow for a few compiler-allocated temporary stack slots. */
526 # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
529 # define YYSTACK_ALLOC YYMALLOC
530 # define YYSTACK_FREE YYFREE
531 # ifndef YYSTACK_ALLOC_MAXIMUM
532 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
534 # if (defined __cplusplus && ! defined _STDLIB_H \
535 && ! ((defined YYMALLOC || defined malloc) \
536 && (defined YYFREE || defined free)))
537 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
543 # define YYMALLOC malloc
544 # if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
545 || defined __cplusplus || defined _MSC_VER)
546 void *malloc (YYSIZE_T
); /* INFRINGES ON USER NAME SPACE */
551 # if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
552 || defined __cplusplus || defined _MSC_VER)
553 void free (void *); /* INFRINGES ON USER NAME SPACE */
557 #endif /* ! defined yyoverflow || YYERROR_VERBOSE */
560 #if (! defined yyoverflow \
561 && (! defined __cplusplus \
562 || (defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL \
563 && defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
565 /* A type that is properly aligned for any stack member. */
568 yytype_int16 yyss_alloc
;
573 /* The size of the maximum gap between one aligned stack and the next. */
574 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
576 /* The size of an array large to enough to hold all stacks, each with
578 # define YYSTACK_BYTES(N) \
579 ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \
580 + 2 * YYSTACK_GAP_MAXIMUM)
582 /* Copy COUNT objects from FROM to TO. The source and destination do
585 # if defined __GNUC__ && 1 < __GNUC__
586 # define YYCOPY(To, From, Count) \
587 __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
589 # define YYCOPY(To, From, Count) \
593 for (yyi = 0; yyi < (Count); yyi++) \
594 (To)[yyi] = (From)[yyi]; \
600 /* Relocate STACK from its old location to the new one. The
601 local variables YYSIZE and YYSTACKSIZE give the old and new number of
602 elements in the stack, and YYPTR gives the new location of the
603 stack. Advance YYPTR to a properly aligned location for the next
605 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \
608 YYSIZE_T yynewbytes; \
609 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
610 Stack = &yyptr->Stack_alloc; \
611 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
612 yyptr += yynewbytes / sizeof (*yyptr); \
618 /* YYFINAL -- State number of the termination state. */
620 /* YYLAST -- Last index in YYTABLE. */
623 /* YYNTOKENS -- Number of terminals. */
624 #define YYNTOKENS 220
625 /* YYNNTS -- Number of nonterminals. */
627 /* YYNRULES -- Number of rules. */
629 /* YYNRULES -- Number of states. */
630 #define YYNSTATES 434
632 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
634 #define YYMAXUTOK 450
636 #define YYTRANSLATE(YYX) \
637 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
639 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
640 static const yytype_uint8 yytranslate
[] =
642 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
643 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
644 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
645 2, 2, 2, 204, 2, 2, 2, 208, 211, 2,
646 196, 197, 206, 202, 201, 203, 200, 207, 2, 2,
647 2, 2, 2, 2, 2, 2, 2, 2, 215, 217,
648 209, 216, 210, 214, 2, 2, 2, 2, 2, 2,
649 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
650 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
651 2, 198, 2, 199, 212, 2, 2, 2, 2, 2,
652 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
653 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
654 2, 2, 2, 218, 213, 219, 205, 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, 2, 2, 2, 2,
666 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
667 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
668 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
669 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
670 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
671 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
672 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
673 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
674 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
675 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
676 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
677 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
678 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
679 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
680 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
681 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
682 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
683 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
684 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
685 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
686 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
691 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
693 static const yytype_uint16 yyprhs
[] =
695 0, 0, 3, 4, 9, 10, 14, 17, 20, 23,
696 26, 29, 30, 33, 35, 37, 39, 45, 47, 50,
697 52, 54, 56, 58, 60, 62, 64, 68, 70, 75,
698 77, 81, 84, 87, 89, 91, 93, 97, 100, 103,
699 106, 108, 111, 115, 118, 120, 122, 124, 127, 130,
700 133, 135, 138, 142, 145, 147, 150, 153, 156, 158,
701 160, 162, 164, 166, 170, 174, 178, 180, 184, 188,
702 190, 194, 198, 200, 204, 208, 212, 216, 218, 222,
703 226, 228, 232, 234, 238, 240, 244, 246, 250, 252,
704 256, 258, 262, 264, 270, 272, 276, 278, 280, 282,
705 284, 286, 288, 290, 292, 294, 296, 298, 300, 304,
706 306, 309, 312, 317, 320, 322, 324, 327, 331, 335,
707 338, 344, 348, 351, 355, 358, 359, 361, 363, 365,
708 367, 369, 373, 379, 386, 394, 403, 409, 411, 414,
709 419, 425, 432, 440, 445, 448, 450, 453, 458, 460,
710 464, 466, 470, 472, 474, 476, 478, 480, 482, 485,
711 487, 490, 493, 497, 499, 501, 503, 505, 508, 510,
712 512, 515, 518, 520, 522, 525, 527, 531, 536, 538,
713 540, 542, 544, 546, 548, 550, 552, 554, 556, 558,
714 560, 562, 564, 566, 568, 570, 572, 574, 576, 578,
715 580, 582, 584, 586, 588, 590, 592, 594, 596, 598,
716 600, 602, 604, 606, 608, 610, 612, 614, 616, 618,
717 620, 622, 624, 626, 628, 630, 632, 634, 636, 638,
718 640, 642, 644, 646, 648, 650, 656, 661, 663, 666,
719 670, 672, 676, 678, 683, 685, 687, 689, 691, 693,
720 695, 697, 699, 701, 703, 705, 708, 709, 714, 716,
721 718, 721, 725, 727, 730, 732, 735, 741, 745, 747,
722 749, 754, 760, 764, 767, 773, 781, 788, 790, 792,
723 794, 795, 798, 802, 805, 808, 811, 815, 818, 820,
727 /* YYRHS -- A `-1'-separated list of the rules' RHS. */
728 static const yytype_int16 yyrhs
[] =
730 221, 0, -1, -1, 223, 225, 222, 228, -1, -1,
731 111, 80, 115, -1, 118, 115, -1, 119, 115, -1,
732 120, 115, -1, 121, 115, -1, 122, 115, -1, -1,
733 225, 227, -1, 76, -1, 77, -1, 78, -1, 112,
734 226, 114, 226, 115, -1, 311, -1, 228, 311, -1,
735 76, -1, 78, -1, 229, -1, 80, -1, 81, -1,
736 79, -1, 82, -1, 196, 260, 197, -1, 230, -1,
737 231, 198, 232, 199, -1, 233, -1, 231, 200, 226,
738 -1, 231, 86, -1, 231, 87, -1, 260, -1, 234,
739 -1, 235, -1, 231, 200, 240, -1, 237, 197, -1,
740 236, 197, -1, 238, 74, -1, 238, -1, 238, 258,
741 -1, 237, 201, 258, -1, 239, 196, -1, 281, -1,
742 229, -1, 83, -1, 242, 197, -1, 241, 197, -1,
743 243, 74, -1, 243, -1, 243, 258, -1, 242, 201,
744 258, -1, 229, 196, -1, 231, -1, 86, 244, -1,
745 87, 244, -1, 245, 244, -1, 202, -1, 203, -1,
746 204, -1, 205, -1, 244, -1, 246, 206, 244, -1,
747 246, 207, 244, -1, 246, 208, 244, -1, 246, -1,
748 247, 202, 246, -1, 247, 203, 246, -1, 247, -1,
749 248, 84, 247, -1, 248, 85, 247, -1, 248, -1,
750 249, 209, 248, -1, 249, 210, 248, -1, 249, 88,
751 248, -1, 249, 89, 248, -1, 249, -1, 250, 90,
752 249, -1, 250, 91, 249, -1, 250, -1, 251, 211,
753 250, -1, 251, -1, 252, 212, 251, -1, 252, -1,
754 253, 213, 252, -1, 253, -1, 254, 92, 253, -1,
755 254, -1, 255, 94, 254, -1, 255, -1, 256, 93,
756 255, -1, 256, -1, 256, 214, 260, 215, 258, -1,
757 257, -1, 244, 259, 258, -1, 216, -1, 95, -1,
758 96, -1, 98, -1, 97, -1, 104, -1, 99, -1,
759 100, -1, 101, -1, 102, -1, 103, -1, 258, -1,
760 260, 201, 258, -1, 257, -1, 263, 217, -1, 271,
761 217, -1, 110, 285, 282, 217, -1, 264, 197, -1,
762 266, -1, 265, -1, 266, 268, -1, 265, 201, 268,
763 -1, 273, 229, 196, -1, 281, 226, -1, 281, 226,
764 198, 261, 199, -1, 278, 269, 267, -1, 269, 267,
765 -1, 278, 269, 270, -1, 269, 270, -1, -1, 33,
766 -1, 34, -1, 35, -1, 281, -1, 272, -1, 271,
767 201, 226, -1, 271, 201, 226, 198, 199, -1, 271,
768 201, 226, 198, 261, 199, -1, 271, 201, 226, 198,
769 199, 216, 291, -1, 271, 201, 226, 198, 261, 199,
770 216, 291, -1, 271, 201, 226, 216, 291, -1, 273,
771 -1, 273, 226, -1, 273, 226, 198, 199, -1, 273,
772 226, 198, 261, 199, -1, 273, 226, 198, 199, 216,
773 291, -1, 273, 226, 198, 261, 199, 216, 291, -1,
774 273, 226, 216, 291, -1, 105, 229, -1, 281, -1,
775 279, 281, -1, 123, 196, 275, 197, -1, 276, -1,
776 275, 201, 276, -1, 226, -1, 226, 216, 80, -1,
777 40, -1, 39, -1, 38, -1, 4, -1, 280, -1,
778 274, -1, 274, 280, -1, 277, -1, 277, 280, -1,
779 105, 280, -1, 105, 277, 280, -1, 105, -1, 4,
780 -1, 3, -1, 37, -1, 32, 37, -1, 33, -1,
781 34, -1, 32, 33, -1, 32, 34, -1, 36, -1,
782 282, -1, 285, 282, -1, 283, -1, 283, 198, 199,
783 -1, 283, 198, 261, 199, -1, 284, -1, 286, -1,
784 77, -1, 74, -1, 6, -1, 7, -1, 8, -1,
785 5, -1, 29, -1, 30, -1, 31, -1, 20, -1,
786 21, -1, 22, -1, 23, -1, 24, -1, 25, -1,
787 26, -1, 27, -1, 28, -1, 41, -1, 42, -1,
788 43, -1, 44, -1, 45, -1, 46, -1, 47, -1,
789 48, -1, 49, -1, 50, -1, 51, -1, 157, -1,
790 52, -1, 53, -1, 54, -1, 55, -1, 159, -1,
791 56, -1, 57, -1, 58, -1, 59, -1, 60, -1,
792 61, -1, 62, -1, 63, -1, 64, -1, 65, -1,
793 66, -1, 67, -1, 68, -1, 69, -1, 70, -1,
794 71, -1, 72, -1, 108, -1, 107, -1, 106, -1,
795 73, 226, 218, 287, 219, -1, 73, 218, 287, 219,
796 -1, 288, -1, 287, 288, -1, 281, 289, 217, -1,
797 290, -1, 289, 201, 290, -1, 226, -1, 226, 198,
798 261, 199, -1, 258, -1, 262, -1, 295, -1, 294,
799 -1, 292, -1, 300, -1, 301, -1, 304, -1, 305,
800 -1, 306, -1, 310, -1, 218, 219, -1, -1, 218,
801 296, 299, 219, -1, 298, -1, 294, -1, 218, 219,
802 -1, 218, 299, 219, -1, 293, -1, 299, 293, -1,
803 217, -1, 260, 217, -1, 14, 196, 260, 197, 302,
804 -1, 293, 12, 293, -1, 293, -1, 260, -1, 273,
805 226, 216, 291, -1, 17, 196, 260, 197, 295, -1,
806 18, 260, 215, -1, 19, 215, -1, 75, 196, 303,
807 197, 297, -1, 11, 293, 75, 196, 260, 197, 217,
808 -1, 13, 196, 307, 309, 197, 297, -1, 300, -1,
809 292, -1, 303, -1, -1, 308, 217, -1, 308, 217,
810 260, -1, 10, 217, -1, 9, 217, -1, 16, 217,
811 -1, 16, 260, 217, -1, 15, 217, -1, 312, -1,
812 262, -1, 224, -1, 263, 298, -1
815 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
816 static const yytype_uint16 yyrline
[] =
818 0, 218, 218, 217, 229, 231, 271, 272, 273, 274,
819 275, 287, 289, 293, 294, 295, 299, 308, 316, 327,
820 328, 332, 339, 346, 353, 360, 367, 374, 375, 381,
821 385, 392, 398, 407, 411, 415, 416, 425, 426, 430,
822 431, 435, 441, 453, 457, 463, 470, 480, 481, 485,
823 486, 490, 496, 508, 519, 520, 526, 532, 542, 543,
824 544, 545, 549, 550, 556, 562, 571, 572, 578, 587,
825 588, 594, 603, 604, 610, 616, 622, 631, 632, 638,
826 647, 648, 657, 658, 667, 668, 677, 678, 687, 688,
827 697, 698, 707, 708, 717, 718, 727, 728, 729, 730,
828 731, 732, 733, 734, 735, 736, 737, 741, 745, 761,
829 765, 770, 774, 783, 787, 788, 792, 797, 805, 819,
830 829, 844, 851, 856, 867, 880, 883, 888, 893, 902,
831 906, 907, 917, 927, 937, 947, 957, 971, 982, 991,
832 1000, 1009, 1018, 1027, 1036, 1050, 1057, 1068, 1075, 1076,
833 1095, 1147, 1188, 1193, 1198, 1206, 1214, 1215, 1216, 1221,
834 1222, 1227, 1232, 1238, 1246, 1251, 1256, 1261, 1267, 1272,
835 1277, 1282, 1287, 1295, 1299, 1307, 1308, 1314, 1323, 1329,
836 1335, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352,
837 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362,
838 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372,
839 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382,
840 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392,
841 1393, 1394, 1398, 1408, 1418, 1431, 1438, 1447, 1452, 1460,
842 1475, 1480, 1488, 1495, 1504, 1508, 1514, 1515, 1519, 1520,
843 1521, 1522, 1523, 1524, 1525, 1529, 1536, 1535, 1549, 1550,
844 1554, 1560, 1569, 1579, 1591, 1597, 1606, 1615, 1620, 1628,
845 1632, 1646, 1650, 1651, 1655, 1662, 1669, 1679, 1680, 1684,
846 1686, 1692, 1697, 1706, 1712, 1718, 1724, 1730, 1739, 1740,
851 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
852 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
853 First, the terminals, then, starting at YYNTOKENS, nonterminals. */
854 static const char *const yytname
[] =
856 "$end", "error", "$undefined", "ATTRIBUTE", "CONST_TOK", "BOOL_TOK",
857 "FLOAT_TOK", "INT_TOK", "UINT_TOK", "BREAK", "CONTINUE", "DO", "ELSE",
858 "FOR", "IF", "DISCARD", "RETURN", "SWITCH", "CASE", "DEFAULT", "BVEC2",
859 "BVEC3", "BVEC4", "IVEC2", "IVEC3", "IVEC4", "UVEC2", "UVEC3", "UVEC4",
860 "VEC2", "VEC3", "VEC4", "CENTROID", "IN_TOK", "OUT_TOK", "INOUT_TOK",
861 "UNIFORM", "VARYING", "NOPERSPECTIVE", "FLAT", "SMOOTH", "MAT2X2",
862 "MAT2X3", "MAT2X4", "MAT3X2", "MAT3X3", "MAT3X4", "MAT4X2", "MAT4X3",
863 "MAT4X4", "SAMPLER1D", "SAMPLER2D", "SAMPLER3D", "SAMPLERCUBE",
864 "SAMPLER1DSHADOW", "SAMPLER2DSHADOW", "SAMPLERCUBESHADOW",
865 "SAMPLER1DARRAY", "SAMPLER2DARRAY", "SAMPLER1DARRAYSHADOW",
866 "SAMPLER2DARRAYSHADOW", "ISAMPLER1D", "ISAMPLER2D", "ISAMPLER3D",
867 "ISAMPLERCUBE", "ISAMPLER1DARRAY", "ISAMPLER2DARRAY", "USAMPLER1D",
868 "USAMPLER2D", "USAMPLER3D", "USAMPLERCUBE", "USAMPLER1DARRAY",
869 "USAMPLER2DARRAY", "STRUCT", "VOID_TOK", "WHILE", "IDENTIFIER",
870 "TYPE_IDENTIFIER", "NEW_IDENTIFIER", "FLOATCONSTANT", "INTCONSTANT",
871 "UINTCONSTANT", "BOOLCONSTANT", "FIELD_SELECTION", "LEFT_OP", "RIGHT_OP",
872 "INC_OP", "DEC_OP", "LE_OP", "GE_OP", "EQ_OP", "NE_OP", "AND_OP",
873 "OR_OP", "XOR_OP", "MUL_ASSIGN", "DIV_ASSIGN", "ADD_ASSIGN",
874 "MOD_ASSIGN", "LEFT_ASSIGN", "RIGHT_ASSIGN", "AND_ASSIGN", "XOR_ASSIGN",
875 "OR_ASSIGN", "SUB_ASSIGN", "INVARIANT", "LOWP", "MEDIUMP", "HIGHP",
876 "SUPERP", "PRECISION", "VERSION", "EXTENSION", "LINE", "COLON", "EOL",
877 "INTERFACE", "OUTPUT", "PRAGMA_DEBUG_ON", "PRAGMA_DEBUG_OFF",
878 "PRAGMA_OPTIMIZE_ON", "PRAGMA_OPTIMIZE_OFF", "PRAGMA_INVARIANT_ALL",
879 "LAYOUT_TOK", "ASM", "CLASS", "UNION", "ENUM", "TYPEDEF", "TEMPLATE",
880 "THIS", "PACKED_TOK", "GOTO", "INLINE_TOK", "NOINLINE", "VOLATILE",
881 "PUBLIC_TOK", "STATIC", "EXTERN", "EXTERNAL", "LONG_TOK", "SHORT_TOK",
882 "DOUBLE_TOK", "HALF", "FIXED_TOK", "UNSIGNED", "INPUT_TOK", "OUPTUT",
883 "HVEC2", "HVEC3", "HVEC4", "DVEC2", "DVEC3", "DVEC4", "FVEC2", "FVEC3",
884 "FVEC4", "SAMPLER2DRECT", "SAMPLER3DRECT", "SAMPLER2DRECTSHADOW",
885 "SIZEOF", "CAST", "NAMESPACE", "USING", "ERROR_TOK", "COMMON",
886 "PARTITION", "ACTIVE", "SAMPLERBUFFER", "FILTER", "IMAGE1D", "IMAGE2D",
887 "IMAGE3D", "IMAGECUBE", "IMAGE1DARRAY", "IMAGE2DARRAY", "IIMAGE1D",
888 "IIMAGE2D", "IIMAGE3D", "IIMAGECUBE", "IIMAGE1DARRAY", "IIMAGE2DARRAY",
889 "UIMAGE1D", "UIMAGE2D", "UIMAGE3D", "UIMAGECUBE", "UIMAGE1DARRAY",
890 "UIMAGE2DARRAY", "IMAGE1DSHADOW", "IMAGE2DSHADOW", "IMAGEBUFFER",
891 "IIMAGEBUFFER", "UIMAGEBUFFER", "IMAGE1DARRAYSHADOW",
892 "IMAGE2DARRAYSHADOW", "ROW_MAJOR", "'('", "')'", "'['", "']'", "'.'",
893 "','", "'+'", "'-'", "'!'", "'~'", "'*'", "'/'", "'%'", "'<'", "'>'",
894 "'&'", "'^'", "'|'", "'?'", "':'", "'='", "';'", "'{'", "'}'", "$accept",
895 "translation_unit", "$@1", "version_statement", "pragma_statement",
896 "extension_statement_list", "any_identifier", "extension_statement",
897 "external_declaration_list", "variable_identifier", "primary_expression",
898 "postfix_expression", "integer_expression", "function_call",
899 "function_call_or_method", "function_call_generic",
900 "function_call_header_no_parameters",
901 "function_call_header_with_parameters", "function_call_header",
902 "function_identifier", "method_call_generic",
903 "method_call_header_no_parameters", "method_call_header_with_parameters",
904 "method_call_header", "unary_expression", "unary_operator",
905 "multiplicative_expression", "additive_expression", "shift_expression",
906 "relational_expression", "equality_expression", "and_expression",
907 "exclusive_or_expression", "inclusive_or_expression",
908 "logical_and_expression", "logical_xor_expression",
909 "logical_or_expression", "conditional_expression",
910 "assignment_expression", "assignment_operator", "expression",
911 "constant_expression", "declaration", "function_prototype",
912 "function_declarator", "function_header_with_parameters",
913 "function_header", "parameter_declarator", "parameter_declaration",
914 "parameter_qualifier", "parameter_type_specifier",
915 "init_declarator_list", "single_declaration", "fully_specified_type",
916 "layout_qualifier", "layout_qualifier_id_list", "layout_qualifier_id",
917 "interpolation_qualifier", "parameter_type_qualifier", "type_qualifier",
918 "storage_qualifier", "type_specifier", "type_specifier_no_prec",
919 "type_specifier_nonarray", "basic_type_specifier_nonarray",
920 "precision_qualifier", "struct_specifier", "struct_declaration_list",
921 "struct_declaration", "struct_declarator_list", "struct_declarator",
922 "initializer", "declaration_statement", "statement", "simple_statement",
923 "compound_statement", "$@2", "statement_no_new_scope",
924 "compound_statement_no_new_scope", "statement_list",
925 "expression_statement", "selection_statement",
926 "selection_rest_statement", "condition", "switch_statement",
927 "case_label", "iteration_statement", "for_init_statement",
928 "conditionopt", "for_rest_statement", "jump_statement",
929 "external_declaration", "function_definition", 0
934 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
936 static const yytype_uint16 yytoknum
[] =
938 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
939 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
940 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
941 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
942 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
943 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
944 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
945 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
946 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
947 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
948 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
949 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
950 375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
951 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
952 395, 396, 397, 398, 399, 400, 401, 402, 403, 404,
953 405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
954 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
955 425, 426, 427, 428, 429, 430, 431, 432, 433, 434,
956 435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
957 445, 446, 447, 448, 449, 450, 40, 41, 91, 93,
958 46, 44, 43, 45, 33, 126, 42, 47, 37, 60,
959 62, 38, 94, 124, 63, 58, 61, 59, 123, 125
963 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
964 static const yytype_uint16 yyr1
[] =
966 0, 220, 222, 221, 223, 223, 224, 224, 224, 224,
967 224, 225, 225, 226, 226, 226, 227, 228, 228, 229,
968 229, 230, 230, 230, 230, 230, 230, 231, 231, 231,
969 231, 231, 231, 232, 233, 234, 234, 235, 235, 236,
970 236, 237, 237, 238, 239, 239, 239, 240, 240, 241,
971 241, 242, 242, 243, 244, 244, 244, 244, 245, 245,
972 245, 245, 246, 246, 246, 246, 247, 247, 247, 248,
973 248, 248, 249, 249, 249, 249, 249, 250, 250, 250,
974 251, 251, 252, 252, 253, 253, 254, 254, 255, 255,
975 256, 256, 257, 257, 258, 258, 259, 259, 259, 259,
976 259, 259, 259, 259, 259, 259, 259, 260, 260, 261,
977 262, 262, 262, 263, 264, 264, 265, 265, 266, 267,
978 267, 268, 268, 268, 268, 269, 269, 269, 269, 270,
979 271, 271, 271, 271, 271, 271, 271, 272, 272, 272,
980 272, 272, 272, 272, 272, 273, 273, 274, 275, 275,
981 276, 276, 277, 277, 277, 278, 279, 279, 279, 279,
982 279, 279, 279, 279, 280, 280, 280, 280, 280, 280,
983 280, 280, 280, 281, 281, 282, 282, 282, 283, 283,
984 283, 284, 284, 284, 284, 284, 284, 284, 284, 284,
985 284, 284, 284, 284, 284, 284, 284, 284, 284, 284,
986 284, 284, 284, 284, 284, 284, 284, 284, 284, 284,
987 284, 284, 284, 284, 284, 284, 284, 284, 284, 284,
988 284, 284, 284, 284, 284, 284, 284, 284, 284, 284,
989 284, 284, 285, 285, 285, 286, 286, 287, 287, 288,
990 289, 289, 290, 290, 291, 292, 293, 293, 294, 294,
991 294, 294, 294, 294, 294, 295, 296, 295, 297, 297,
992 298, 298, 299, 299, 300, 300, 301, 302, 302, 303,
993 303, 304, 305, 305, 306, 306, 306, 307, 307, 308,
994 308, 309, 309, 310, 310, 310, 310, 310, 311, 311,
998 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
999 static const yytype_uint8 yyr2
[] =
1001 0, 2, 0, 4, 0, 3, 2, 2, 2, 2,
1002 2, 0, 2, 1, 1, 1, 5, 1, 2, 1,
1003 1, 1, 1, 1, 1, 1, 3, 1, 4, 1,
1004 3, 2, 2, 1, 1, 1, 3, 2, 2, 2,
1005 1, 2, 3, 2, 1, 1, 1, 2, 2, 2,
1006 1, 2, 3, 2, 1, 2, 2, 2, 1, 1,
1007 1, 1, 1, 3, 3, 3, 1, 3, 3, 1,
1008 3, 3, 1, 3, 3, 3, 3, 1, 3, 3,
1009 1, 3, 1, 3, 1, 3, 1, 3, 1, 3,
1010 1, 3, 1, 5, 1, 3, 1, 1, 1, 1,
1011 1, 1, 1, 1, 1, 1, 1, 1, 3, 1,
1012 2, 2, 4, 2, 1, 1, 2, 3, 3, 2,
1013 5, 3, 2, 3, 2, 0, 1, 1, 1, 1,
1014 1, 3, 5, 6, 7, 8, 5, 1, 2, 4,
1015 5, 6, 7, 4, 2, 1, 2, 4, 1, 3,
1016 1, 3, 1, 1, 1, 1, 1, 1, 2, 1,
1017 2, 2, 3, 1, 1, 1, 1, 2, 1, 1,
1018 2, 2, 1, 1, 2, 1, 3, 4, 1, 1,
1019 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1020 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1021 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1022 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1023 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1024 1, 1, 1, 1, 1, 5, 4, 1, 2, 3,
1025 1, 3, 1, 4, 1, 1, 1, 1, 1, 1,
1026 1, 1, 1, 1, 1, 2, 0, 4, 1, 1,
1027 2, 3, 1, 2, 1, 2, 5, 3, 1, 1,
1028 4, 5, 3, 2, 5, 7, 6, 1, 1, 1,
1029 0, 2, 3, 2, 2, 2, 3, 2, 1, 1,
1033 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
1034 STATE-NUM when YYTABLE doesn't specify something else to do. Zero
1035 means the default is an error. */
1036 static const yytype_uint16 yydefact
[] =
1038 4, 0, 0, 11, 0, 1, 2, 5, 0, 0,
1039 12, 13, 14, 15, 0, 165, 164, 185, 182, 183,
1040 184, 189, 190, 191, 192, 193, 194, 195, 196, 197,
1041 186, 187, 188, 0, 168, 169, 172, 166, 154, 153,
1042 152, 198, 199, 200, 201, 202, 203, 204, 205, 206,
1043 207, 208, 210, 211, 212, 213, 215, 216, 217, 218,
1044 219, 220, 221, 222, 223, 224, 225, 226, 227, 228,
1045 229, 230, 231, 0, 181, 180, 163, 234, 233, 232,
1046 0, 0, 0, 0, 0, 0, 0, 209, 214, 290,
1047 3, 289, 0, 0, 115, 125, 0, 130, 137, 157,
1048 159, 0, 156, 145, 173, 175, 178, 0, 179, 17,
1049 288, 0, 170, 171, 167, 0, 0, 19, 20, 144,
1050 0, 161, 0, 6, 7, 8, 9, 10, 0, 18,
1051 110, 0, 291, 113, 125, 155, 126, 127, 128, 116,
1052 0, 125, 0, 111, 13, 15, 138, 0, 158, 160,
1053 146, 0, 174, 0, 0, 0, 237, 0, 162, 0,
1054 150, 0, 148, 0, 0, 0, 0, 0, 0, 0,
1055 0, 0, 0, 0, 24, 22, 23, 25, 46, 0,
1056 0, 0, 58, 59, 60, 61, 264, 256, 260, 21,
1057 27, 54, 29, 34, 35, 0, 0, 40, 0, 62,
1058 0, 66, 69, 72, 77, 80, 82, 84, 86, 88,
1059 90, 92, 94, 107, 0, 245, 0, 145, 248, 262,
1060 247, 246, 0, 249, 250, 251, 252, 253, 254, 117,
1061 122, 124, 129, 0, 131, 0, 0, 118, 176, 62,
1062 109, 0, 44, 16, 242, 0, 240, 236, 238, 0,
1063 112, 0, 147, 0, 284, 283, 0, 0, 0, 287,
1064 285, 0, 0, 0, 273, 0, 55, 56, 0, 255,
1065 0, 31, 32, 0, 0, 38, 37, 0, 181, 41,
1066 43, 97, 98, 100, 99, 102, 103, 104, 105, 106,
1067 101, 96, 0, 57, 0, 0, 0, 0, 0, 0,
1068 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1069 0, 0, 0, 0, 0, 265, 261, 263, 119, 121,
1070 123, 0, 0, 139, 0, 244, 143, 177, 0, 0,
1071 239, 235, 151, 149, 0, 278, 277, 280, 0, 286,
1072 0, 272, 163, 269, 0, 0, 26, 0, 0, 33,
1073 30, 0, 36, 0, 0, 50, 42, 95, 63, 64,
1074 65, 67, 68, 70, 71, 75, 76, 73, 74, 78,
1075 79, 81, 83, 85, 87, 89, 91, 0, 108, 0,
1076 132, 0, 136, 0, 140, 0, 241, 0, 279, 0,
1077 0, 0, 0, 0, 0, 257, 28, 53, 48, 47,
1078 0, 181, 51, 0, 0, 0, 133, 141, 0, 243,
1079 0, 281, 0, 268, 266, 271, 0, 259, 274, 258,
1080 52, 93, 120, 134, 0, 142, 0, 282, 276, 0,
1084 /* YYDEFGOTO[NTERM-NUM]. */
1085 static const yytype_int16 yydefgoto
[] =
1087 -1, 2, 9, 3, 89, 6, 160, 10, 90, 189,
1088 190, 191, 348, 192, 193, 194, 195, 196, 197, 198,
1089 352, 353, 354, 355, 199, 200, 201, 202, 203, 204,
1090 205, 206, 207, 208, 209, 210, 211, 212, 213, 292,
1091 214, 241, 215, 216, 93, 94, 95, 230, 139, 140,
1092 231, 96, 97, 98, 99, 161, 162, 100, 141, 101,
1093 102, 242, 104, 105, 106, 107, 108, 155, 156, 245,
1094 246, 326, 218, 219, 220, 221, 270, 418, 419, 222,
1095 223, 224, 414, 345, 225, 226, 227, 337, 389, 390,
1099 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1101 #define YYPACT_NINF -366
1102 static const yytype_int16 yypact
[] =
1104 -57, -43, 62, -366, -50, -366, -30, -366, 67, 3341,
1105 -366, -366, -366, -366, -6, -366, -366, -366, -366, -366,
1106 -366, -366, -366, -366, -366, -366, -366, -366, -366, -366,
1107 -366, -366, -366, 8, -366, -366, -366, -366, -366, -366,
1108 -366, -366, -366, -366, -366, -366, -366, -366, -366, -366,
1109 -366, -366, -366, -366, -366, -366, -366, -366, -366, -366,
1110 -366, -366, -366, -366, -366, -366, -366, -366, -366, -366,
1111 -366, -366, -366, -65, -366, -366, 226, -366, -366, -366,
1112 51, -31, -28, 6, 13, 15, -44, -366, -366, -366,
1113 3341, -366, -183, -47, -29, 18, -169, -366, 140, 24,
1114 24, 3460, -366, -366, -366, -24, -366, 3533, -366, -366,
1115 -366, 67, -366, -366, -366, 3460, -48, -366, -366, -366,
1116 24, -366, 3533, -366, -366, -366, -366, -366, 67, -366,
1117 -366, 408, -366, -366, 55, -366, -366, -366, -366, -366,
1118 3460, 200, 67, -366, -20, -18, -178, 23, -366, -366,
1119 -366, 2225, -366, 72, 67, 1598, -366, 3460, -366, 4,
1120 10, -84, -366, 11, 14, 1059, 40, 42, 29, 1836,
1121 43, 2783, 34, 54, -366, -366, -366, -366, -366, 2783,
1122 2783, 2783, -366, -366, -366, -366, -366, 32, -366, 56,
1123 -366, -71, -366, -366, -366, 57, -81, 2969, 61, -27,
1124 2783, 35, -88, -41, -70, 33, 60, 41, 59, 181,
1125 180, -89, -366, -366, -168, -366, 58, 80, -366, -366,
1126 -366, -366, 625, -366, -366, -366, -366, -366, -366, -366,
1127 -366, -366, 67, 3460, -177, 2411, 2783, -366, -366, -366,
1128 -366, 78, -366, -366, 81, -137, -366, -366, -366, 1717,
1129 -366, 201, -366, 67, -366, -366, 205, 1478, 2783, -366,
1130 -366, -134, 2783, -115, -366, 2039, -366, -366, -60, -366,
1131 1059, -366, -366, 2783, 140, -366, -366, 2783, 85, -366,
1132 -366, -366, -366, -366, -366, -366, -366, -366, -366, -366,
1133 -366, -366, 2783, -366, 2783, 2783, 2783, 2783, 2783, 2783,
1134 2783, 2783, 2783, 2783, 2783, 2783, 2783, 2783, 2783, 2783,
1135 2783, 2783, 2783, 2783, 2783, -366, -366, -366, 86, -366,
1136 -366, 2597, 2783, 69, 87, -366, -366, -366, 2783, 67,
1137 -366, -366, -366, -366, 91, -366, -366, 2039, -59, -366,
1138 -46, -366, 129, 88, 67, 93, -366, 842, 89, 88,
1139 -366, 95, -366, 96, -37, 3155, -366, -366, -366, -366,
1140 -366, 35, 35, -88, -88, -41, -41, -41, -41, -70,
1141 -70, 33, 60, 41, 59, 181, 180, -96, -366, 2783,
1142 76, 97, -366, 2783, 79, 98, -366, 2783, -366, 77,
1143 101, 1059, 83, 90, 1275, -366, -366, -366, -366, -366,
1144 2783, 102, -366, 2783, 108, 2783, 94, -366, 2783, -366,
1145 -26, 2783, 1275, 297, -366, -366, 2783, -366, -366, -366,
1146 -366, -366, -366, -366, 2783, -366, 100, 88, -366, 1059,
1147 -366, -366, -366, -366
1150 /* YYPGOTO[NTERM-NUM]. */
1151 static const yytype_int16 yypgoto
[] =
1153 -366, -366, -366, -366, -366, -366, -7, -366, -366, -62,
1154 -366, -366, -366, -366, -366, -366, -366, -366, -366, -366,
1155 -366, -366, -366, -366, -101, -366, -113, -109, -121, -61,
1156 5, 3, 9, 16, 2, 7, -366, -142, -100, -366,
1157 -164, -225, 21, 22, -366, -366, -366, 82, 186, 173,
1158 92, -366, -366, -242, -366, -366, 68, -73, -366, -366,
1159 -74, -9, -67, -366, -366, 243, -366, 170, -147, -366,
1160 0, -298, 73, -159, -365, -58, -366, -80, 239, 63,
1161 84, -366, -366, -2, -366, -366, -366, -366, -366, -366,
1165 /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
1166 positive, shift that token. If negative, reduce the rule which
1167 number is the opposite. If zero, do what YYDEFACT says.
1168 If YYTABLE_NINF, syntax error. */
1169 #define YYTABLE_NINF -115
1170 static const yytype_int16 yytable
[] =
1172 103, 14, 121, 120, 312, 261, 256, 263, 248, 240,
1173 324, 11, 12, 13, 119, 271, 272, 268, 301, 302,
1174 235, 321, 135, 344, 382, 148, 149, 15, 16, 417,
1175 91, 92, 142, 314, 130, 131, 147, 4, 236, 322,
1176 152, 112, 113, 299, 300, 114, 158, 417, 143, 315,
1177 239, 136, 137, 138, 1, 159, 33, 34, 35, 135,
1178 36, 37, 5, 317, 329, 7, 116, 314, 281, 282,
1179 283, 284, 285, 286, 287, 288, 289, 290, 266, 267,
1180 330, 103, 8, 339, 123, 407, 314, 124, 136, 137,
1181 138, 146, 150, 240, 338, 344, 381, 279, 340, 293,
1182 341, 343, 248, 385, 153, 314, 154, 423, 111, 349,
1183 425, 91, 92, 252, 297, 298, 276, 253, 430, 403,
1184 277, 125, 217, 305, 306, 313, 431, 273, 126, 274,
1185 127, 232, 15, 16, 239, 234, 325, 346, 391, 303,
1186 304, 314, 314, 11, 12, 13, 154, 244, 154, 377,
1187 133, 392, 128, 115, 404, 314, 217, 77, 78, 79,
1188 399, 33, 34, 35, 400, 36, 37, 38, 39, 40,
1189 157, 426, 134, 343, 151, 314, -19, 356, -20, 240,
1190 365, 366, 367, 368, 361, 362, 240, 243, 317, 291,
1191 363, 364, 357, 358, 359, 360, 239, 239, 239, 239,
1192 239, 239, 239, 239, 239, 239, 239, 239, 239, 239,
1193 239, 239, 351, 217, 378, -114, 144, 12, 145, 237,
1194 239, 250, 325, 410, 232, 318, 251, 239, 254, 15,
1195 16, 255, 413, 136, 137, 138, 257, 240, 258, 262,
1196 154, 294, 295, 296, 369, 370, 259, 427, 217, 264,
1197 265, 269, -45, 308, 275, 402, 217, 280, 33, 34,
1198 35, 217, 36, 37, 38, 39, 40, 350, 121, 120,
1199 433, 307, 309, 310, 311, 130, -44, 327, 239, 328,
1200 334, 332, -39, 325, 379, 383, 384, 387, 396, 314,
1201 394, 397, 405, 398, 411, 408, 406, 409, 412, -49,
1202 420, 187, 117, 421, 118, 325, 416, 422, 325, 429,
1203 424, 372, 371, 375, 233, 319, 325, 432, 373, 376,
1204 229, 333, 244, 122, 325, 320, 374, 249, 217, 386,
1205 335, 132, 428, 347, 415, 388, 129, 393, 217, 0,
1206 0, 336, 0, 0, 0, 0, 0, 0, 0, 0,
1207 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1208 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1209 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1210 0, 0, 217, 0, 0, 217, 0, 0, 0, 0,
1211 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1212 0, 0, 0, 217, 0, 0, 0, 0, 0, 0,
1213 0, 15, 16, 17, 18, 19, 20, 163, 164, 165,
1214 217, 166, 167, 168, 169, 170, 171, 172, 21, 22,
1215 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
1216 33, 34, 35, 0, 36, 37, 38, 39, 40, 41,
1217 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1218 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1219 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1220 72, 73, 74, 173, 117, 75, 118, 174, 175, 176,
1221 177, 178, 0, 0, 179, 180, 0, 0, 0, 0,
1222 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1223 0, 0, 0, 76, 77, 78, 79, 0, 80, 0,
1224 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1225 0, 86, 0, 0, 0, 0, 0, 0, 0, 0,
1226 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1227 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1228 0, 0, 0, 0, 0, 87, 0, 88, 0, 0,
1229 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1230 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1231 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1232 0, 0, 0, 0, 181, 0, 0, 0, 0, 0,
1233 182, 183, 184, 185, 0, 0, 0, 0, 0, 0,
1234 0, 0, 0, 0, 0, 186, 187, 188, 15, 16,
1235 17, 18, 19, 20, 163, 164, 165, 0, 166, 167,
1236 168, 169, 170, 171, 172, 21, 22, 23, 24, 25,
1237 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
1238 0, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1239 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1240 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1241 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1242 173, 117, 75, 118, 174, 175, 176, 177, 178, 0,
1243 0, 179, 180, 0, 0, 0, 0, 0, 0, 0,
1244 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1245 76, 77, 78, 79, 0, 80, 0, 0, 0, 0,
1246 0, 0, 0, 0, 0, 0, 0, 0, 86, 0,
1247 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1248 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1249 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1250 0, 0, 87, 0, 88, 0, 0, 0, 0, 0,
1251 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1252 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1253 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1254 0, 181, 0, 0, 0, 0, 0, 182, 183, 184,
1255 185, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1256 0, 0, 186, 187, 316, 15, 16, 17, 18, 19,
1257 20, 163, 164, 165, 0, 166, 167, 168, 169, 170,
1258 171, 172, 21, 22, 23, 24, 25, 26, 27, 28,
1259 29, 30, 31, 32, 33, 34, 35, 0, 36, 37,
1260 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1261 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1262 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1263 68, 69, 70, 71, 72, 73, 74, 173, 117, 75,
1264 118, 174, 175, 176, 177, 178, 0, 0, 179, 180,
1265 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1266 0, 0, 0, 0, 0, 0, 0, 76, 77, 78,
1267 79, 0, 80, 0, 0, 0, 0, 0, 0, 0,
1268 0, 0, 0, 0, 0, 86, 0, 0, 0, 0,
1269 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1270 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1271 0, 0, 0, 0, 0, 0, 0, 0, 0, 87,
1272 0, 88, 0, 0, 0, 0, 0, 0, 0, 0,
1273 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1274 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1275 0, 0, 0, 0, 0, 0, 0, 0, 181, 0,
1276 0, 0, 0, 0, 182, 183, 184, 185, 0, 0,
1277 0, 0, 0, 0, 0, 0, 0, 0, 0, 186,
1278 187, 395, 15, 16, 17, 18, 19, 20, 163, 164,
1279 165, 0, 166, 167, 168, 169, 170, 171, 172, 21,
1280 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
1281 32, 33, 34, 35, 0, 36, 37, 38, 39, 40,
1282 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1283 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1284 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1285 71, 72, 73, 74, 173, 117, 75, 118, 174, 175,
1286 176, 177, 178, 0, 0, 179, 180, 0, 0, 0,
1287 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1288 0, 0, 0, 0, 76, 77, 78, 79, 0, 80,
1289 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1290 0, 0, 86, 0, 0, 0, 0, 0, 0, 0,
1291 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1292 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1293 0, 0, 0, 0, 0, 0, 87, 0, 88, 0,
1294 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1295 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1296 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1297 0, 0, 0, 0, 0, 181, 0, 0, 0, 0,
1298 0, 182, 183, 184, 185, 0, 0, 0, 0, 0,
1299 0, 0, 0, 0, 0, 0, 186, 187, 15, 16,
1300 17, 18, 19, 20, 163, 164, 165, 0, 166, 167,
1301 168, 169, 170, 171, 172, 21, 22, 23, 24, 25,
1302 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
1303 0, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1304 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1305 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1306 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1307 173, 117, 75, 118, 174, 175, 176, 177, 178, 0,
1308 0, 179, 180, 0, 0, 0, 0, 0, 0, 0,
1309 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1310 76, 77, 78, 79, 0, 80, 0, 0, 0, 0,
1311 0, 0, 0, 0, 0, 0, 0, 0, 86, 0,
1312 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1313 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1314 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1315 0, 0, 87, 0, 88, 0, 0, 0, 0, 0,
1316 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1317 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1318 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1319 0, 181, 0, 0, 0, 0, 0, 182, 183, 184,
1320 185, 15, 16, 17, 18, 19, 20, 0, 0, 0,
1321 0, 0, 186, 131, 0, 0, 0, 0, 21, 22,
1322 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
1323 33, 34, 35, 0, 36, 37, 38, 39, 40, 41,
1324 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1325 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1326 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1327 72, 73, 74, 0, 117, 75, 118, 174, 175, 176,
1328 177, 178, 0, 0, 179, 180, 0, 0, 0, 0,
1329 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1330 0, 0, 0, 76, 77, 78, 79, 0, 80, 0,
1331 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1332 0, 86, 0, 17, 18, 19, 20, 0, 0, 0,
1333 0, 0, 0, 0, 0, 0, 0, 0, 21, 22,
1334 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
1335 0, 0, 0, 0, 0, 87, 0, 88, 0, 41,
1336 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1337 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1338 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1339 72, 73, 74, 0, 181, 75, 0, 0, 0, 0,
1340 182, 183, 184, 185, 0, 0, 0, 0, 0, 0,
1341 0, 0, 0, 0, 0, 186, 0, 0, 0, 0,
1342 0, 0, 0, 0, 77, 78, 79, 0, 0, 0,
1343 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1344 0, 0, 17, 18, 19, 20, 0, 0, 0, 0,
1345 0, 0, 0, 0, 0, 0, 0, 21, 22, 23,
1346 24, 25, 26, 27, 28, 29, 30, 31, 32, 0,
1347 0, 0, 0, 0, 0, 87, 0, 88, 41, 42,
1348 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1349 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1350 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
1351 73, 74, 0, 0, 75, 0, 0, 0, 0, 0,
1352 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1353 0, 0, 0, 0, 0, 0, 0, 247, 0, 0,
1354 0, 0, 0, 77, 78, 79, 0, 0, 0, 0,
1355 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1356 0, 17, 18, 19, 20, 0, 0, 0, 0, 0,
1357 0, 0, 0, 0, 0, 0, 21, 22, 23, 24,
1358 25, 26, 27, 28, 29, 30, 31, 32, 0, 0,
1359 0, 0, 0, 0, 87, 0, 88, 41, 42, 43,
1360 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1361 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1362 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1363 74, 0, 117, 75, 118, 174, 175, 176, 177, 178,
1364 0, 0, 179, 180, 0, 0, 0, 0, 0, 0,
1365 0, 0, 0, 0, 0, 0, 331, 0, 0, 0,
1366 0, 0, 77, 78, 79, 0, 0, 0, 0, 0,
1367 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1368 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1369 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1370 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1371 0, 0, 0, 87, 0, 88, 0, 0, 0, 0,
1372 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1373 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1374 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1375 0, 0, 181, 0, 0, 0, 0, 0, 182, 183,
1376 184, 185, 15, 16, 17, 18, 19, 20, 0, 0,
1377 0, 0, 0, 260, 0, 0, 0, 0, 0, 21,
1378 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
1379 32, 33, 34, 35, 0, 36, 37, 38, 39, 40,
1380 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1381 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1382 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1383 71, 72, 73, 74, 0, 117, 75, 118, 174, 175,
1384 176, 177, 178, 0, 0, 179, 180, 0, 0, 0,
1385 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1386 0, 0, 0, 0, 342, 77, 78, 79, 0, 0,
1387 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1388 0, 0, 86, 0, 0, 0, 0, 0, 0, 0,
1389 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1390 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1391 0, 0, 0, 0, 0, 0, 87, 0, 88, 0,
1392 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1393 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1394 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1395 17, 18, 19, 20, 0, 181, 0, 0, 0, 0,
1396 0, 182, 183, 184, 185, 21, 22, 23, 24, 25,
1397 26, 27, 28, 29, 30, 31, 32, 0, 0, 0,
1398 0, 0, 0, 0, 0, 0, 41, 42, 43, 44,
1399 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1400 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1401 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1402 0, 117, 75, 118, 174, 175, 176, 177, 178, 0,
1403 0, 179, 180, 0, 0, 0, 0, 0, 0, 0,
1404 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1405 0, 77, 78, 79, 0, 0, 0, 0, 0, 0,
1406 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1407 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1408 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1409 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1410 0, 0, 87, 0, 88, 0, 0, 0, 0, 0,
1411 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1412 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1413 0, 0, 0, 0, 0, 0, 17, 18, 19, 20,
1414 0, 181, 0, 0, 238, 0, 0, 182, 183, 184,
1415 185, 21, 22, 23, 24, 25, 26, 27, 28, 29,
1416 30, 31, 32, 0, 0, 0, 0, 0, 0, 0,
1417 0, 0, 41, 42, 43, 44, 45, 46, 47, 48,
1418 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1419 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1420 69, 70, 71, 72, 73, 74, 0, 117, 75, 118,
1421 174, 175, 176, 177, 178, 0, 0, 179, 180, 0,
1422 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1423 0, 0, 0, 0, 0, 0, 0, 77, 78, 79,
1424 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1425 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1426 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1427 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1428 0, 0, 0, 0, 0, 0, 0, 0, 87, 0,
1429 88, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1430 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1431 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1432 0, 0, 17, 18, 19, 20, 0, 181, 0, 0,
1433 323, 0, 0, 182, 183, 184, 185, 21, 22, 23,
1434 24, 25, 26, 27, 28, 29, 30, 31, 32, 0,
1435 0, 0, 0, 0, 0, 0, 0, 0, 41, 42,
1436 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1437 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1438 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
1439 73, 74, 0, 117, 75, 118, 174, 175, 176, 177,
1440 178, 0, 0, 179, 180, 0, 0, 0, 0, 0,
1441 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1442 0, 0, 0, 77, 78, 79, 0, 0, 0, 0,
1443 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1444 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1445 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1446 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1447 0, 0, 0, 0, 87, 0, 88, 0, 0, 0,
1448 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1449 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1450 0, 0, 0, 0, 0, 0, 0, 0, 17, 18,
1451 19, 20, 0, 181, 0, 0, 380, 0, 0, 182,
1452 183, 184, 185, 21, 22, 23, 24, 25, 26, 27,
1453 28, 29, 30, 31, 32, 0, 0, 0, 0, 0,
1454 0, 0, 0, 0, 41, 42, 43, 44, 45, 46,
1455 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1456 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1457 67, 68, 69, 70, 71, 72, 73, 74, 0, 117,
1458 75, 118, 174, 175, 176, 177, 178, 0, 0, 179,
1459 180, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1460 0, 0, 0, 0, 0, 0, 0, 0, 0, 77,
1461 78, 79, 0, 0, 0, 0, 0, 0, 0, 0,
1462 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1463 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1464 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1465 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1466 87, 0, 88, 0, 0, 0, 0, 0, 0, 0,
1467 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1468 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1469 0, 0, 0, 0, 17, 18, 19, 20, 0, 181,
1470 0, 0, 0, 0, 0, 182, 183, 184, 185, 21,
1471 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
1472 32, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1473 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1474 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1475 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1476 71, 72, 73, 278, 0, 117, 75, 118, 174, 175,
1477 176, 177, 178, 0, 0, 179, 180, 0, 0, 0,
1478 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1479 0, 0, 0, 0, 0, 77, 78, 79, 0, 0,
1480 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1481 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1482 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1483 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1484 0, 0, 0, 0, 0, 0, 87, 0, 88, 0,
1485 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1486 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1487 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1488 17, 18, 19, 20, 0, 181, 0, 0, 0, 0,
1489 0, 182, 183, 184, 185, 21, 22, 23, 24, 25,
1490 26, 27, 28, 29, 30, 31, 32, 0, 0, 0,
1491 0, 0, 0, 0, 0, 0, 41, 42, 43, 44,
1492 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1493 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1494 65, 66, 67, 68, 69, 70, 71, 72, 73, 401,
1495 0, 117, 75, 118, 174, 175, 176, 177, 178, 0,
1496 0, 179, 180, 0, 0, 0, 0, 0, 0, 0,
1497 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1498 0, 77, 78, 79, 0, 0, 0, 0, 0, 0,
1499 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1500 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1501 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1502 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1503 0, 0, 87, 0, 88, 0, 0, 0, 0, 0,
1504 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1505 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1506 0, 0, 0, 0, 15, 16, 17, 18, 19, 20,
1507 0, 181, 0, 0, 0, 0, 0, 182, 183, 184,
1508 185, 21, 22, 23, 24, 25, 26, 27, 28, 29,
1509 30, 31, 32, 33, 34, 35, 0, 36, 37, 38,
1510 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1511 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1512 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1513 69, 70, 71, 72, 73, 74, 0, 0, 75, 0,
1514 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1515 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1516 0, 0, 0, 0, 0, 0, 76, 77, 78, 79,
1517 0, 80, 0, 0, 0, 0, 0, 0, 0, 81,
1518 82, 83, 84, 85, 86, 17, 18, 19, 20, 0,
1519 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1520 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
1521 31, 32, 0, 0, 0, 0, 0, 0, 87, 0,
1522 88, 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 70, 71, 72, 73, 74, 0, 0, 75, 17, 18,
1526 19, 20, 0, 0, 0, 0, 0, 0, 0, 0,
1527 0, 0, 0, 21, 22, 23, 24, 25, 26, 27,
1528 28, 29, 30, 31, 32, 0, 77, 78, 79, 0,
1529 0, 0, 0, 0, 41, 42, 43, 44, 45, 46,
1530 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1531 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1532 67, 68, 69, 70, 71, 72, 73, 74, 0, 0,
1533 75, 0, 0, 0, 0, 0, 0, 87, 0, 88,
1534 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1535 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1536 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1537 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1538 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1539 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1540 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1544 static const yytype_int16 yycheck
[] =
1546 9, 8, 76, 76, 93, 169, 165, 171, 155, 151,
1547 235, 76, 77, 78, 76, 86, 87, 181, 88, 89,
1548 198, 198, 4, 265, 322, 99, 100, 3, 4, 394,
1549 9, 9, 201, 201, 217, 218, 98, 80, 216, 216,
1550 107, 33, 34, 84, 85, 37, 120, 412, 217, 217,
1551 151, 33, 34, 35, 111, 122, 32, 33, 34, 4,
1552 36, 37, 0, 222, 201, 115, 73, 201, 95, 96,
1553 97, 98, 99, 100, 101, 102, 103, 104, 179, 180,
1554 217, 90, 112, 217, 115, 383, 201, 115, 33, 34,
1555 35, 98, 101, 235, 258, 337, 321, 197, 262, 200,
1556 215, 265, 249, 328, 111, 201, 115, 405, 114, 273,
1557 408, 90, 90, 197, 202, 203, 197, 201, 416, 215,
1558 201, 115, 131, 90, 91, 214, 424, 198, 115, 200,
1559 115, 140, 3, 4, 235, 142, 236, 197, 197, 209,
1560 210, 201, 201, 76, 77, 78, 155, 154, 157, 313,
1561 197, 197, 196, 218, 379, 201, 165, 106, 107, 108,
1562 197, 32, 33, 34, 201, 36, 37, 38, 39, 40,
1563 218, 197, 201, 337, 198, 201, 196, 277, 196, 321,
1564 301, 302, 303, 304, 297, 298, 328, 115, 347, 216,
1565 299, 300, 292, 294, 295, 296, 297, 298, 299, 300,
1566 301, 302, 303, 304, 305, 306, 307, 308, 309, 310,
1567 311, 312, 274, 222, 314, 197, 76, 77, 78, 196,
1568 321, 217, 322, 387, 233, 232, 216, 328, 217, 3,
1569 4, 217, 391, 33, 34, 35, 196, 379, 196, 196,
1570 249, 206, 207, 208, 305, 306, 217, 411, 257, 215,
1571 196, 219, 196, 212, 197, 355, 265, 196, 32, 33,
1572 34, 270, 36, 37, 38, 39, 40, 274, 342, 342,
1573 429, 211, 213, 92, 94, 217, 196, 199, 379, 198,
1574 75, 80, 197, 383, 198, 216, 199, 196, 199, 201,
1575 197, 196, 216, 197, 217, 216, 199, 199, 197, 197,
1576 400, 218, 76, 403, 78, 405, 216, 199, 408, 12,
1577 216, 308, 307, 311, 141, 233, 416, 217, 309, 312,
1578 134, 253, 329, 80, 424, 233, 310, 157, 337, 329,
1579 257, 92, 412, 270, 392, 337, 90, 344, 347, -1,
1580 -1, 257, -1, -1, -1, -1, -1, -1, -1, -1,
1581 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1582 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1583 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1584 -1, -1, 391, -1, -1, 394, -1, -1, -1, -1,
1585 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1586 -1, -1, -1, 412, -1, -1, -1, -1, -1, -1,
1587 -1, 3, 4, 5, 6, 7, 8, 9, 10, 11,
1588 429, 13, 14, 15, 16, 17, 18, 19, 20, 21,
1589 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
1590 32, 33, 34, -1, 36, 37, 38, 39, 40, 41,
1591 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1592 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1593 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1594 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
1595 82, 83, -1, -1, 86, 87, -1, -1, -1, -1,
1596 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1597 -1, -1, -1, 105, 106, 107, 108, -1, 110, -1,
1598 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1599 -1, 123, -1, -1, -1, -1, -1, -1, -1, -1,
1600 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1601 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1602 -1, -1, -1, -1, -1, 157, -1, 159, -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, -1, -1, -1,
1606 -1, -1, -1, -1, 196, -1, -1, -1, -1, -1,
1607 202, 203, 204, 205, -1, -1, -1, -1, -1, -1,
1608 -1, -1, -1, -1, -1, 217, 218, 219, 3, 4,
1609 5, 6, 7, 8, 9, 10, 11, -1, 13, 14,
1610 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
1611 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1612 -1, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1613 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1614 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1615 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1616 75, 76, 77, 78, 79, 80, 81, 82, 83, -1,
1617 -1, 86, 87, -1, -1, -1, -1, -1, -1, -1,
1618 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1619 105, 106, 107, 108, -1, 110, -1, -1, -1, -1,
1620 -1, -1, -1, -1, -1, -1, -1, -1, 123, -1,
1621 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1622 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1623 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1624 -1, -1, 157, -1, 159, -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, -1,
1627 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1628 -1, 196, -1, -1, -1, -1, -1, 202, 203, 204,
1629 205, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1630 -1, -1, 217, 218, 219, 3, 4, 5, 6, 7,
1631 8, 9, 10, 11, -1, 13, 14, 15, 16, 17,
1632 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
1633 28, 29, 30, 31, 32, 33, 34, -1, 36, 37,
1634 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1635 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1636 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1637 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
1638 78, 79, 80, 81, 82, 83, -1, -1, 86, 87,
1639 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1640 -1, -1, -1, -1, -1, -1, -1, 105, 106, 107,
1641 108, -1, 110, -1, -1, -1, -1, -1, -1, -1,
1642 -1, -1, -1, -1, -1, 123, -1, -1, -1, -1,
1643 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1644 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1645 -1, -1, -1, -1, -1, -1, -1, -1, -1, 157,
1646 -1, 159, -1, -1, -1, -1, -1, -1, -1, -1,
1647 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1648 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1649 -1, -1, -1, -1, -1, -1, -1, -1, 196, -1,
1650 -1, -1, -1, -1, 202, 203, 204, 205, -1, -1,
1651 -1, -1, -1, -1, -1, -1, -1, -1, -1, 217,
1652 218, 219, 3, 4, 5, 6, 7, 8, 9, 10,
1653 11, -1, 13, 14, 15, 16, 17, 18, 19, 20,
1654 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
1655 31, 32, 33, 34, -1, 36, 37, 38, 39, 40,
1656 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1657 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1658 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1659 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
1660 81, 82, 83, -1, -1, 86, 87, -1, -1, -1,
1661 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1662 -1, -1, -1, -1, 105, 106, 107, 108, -1, 110,
1663 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1664 -1, -1, 123, -1, -1, -1, -1, -1, -1, -1,
1665 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1666 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1667 -1, -1, -1, -1, -1, -1, 157, -1, 159, -1,
1668 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1669 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1670 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1671 -1, -1, -1, -1, -1, 196, -1, -1, -1, -1,
1672 -1, 202, 203, 204, 205, -1, -1, -1, -1, -1,
1673 -1, -1, -1, -1, -1, -1, 217, 218, 3, 4,
1674 5, 6, 7, 8, 9, 10, 11, -1, 13, 14,
1675 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
1676 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1677 -1, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1678 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1679 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1680 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1681 75, 76, 77, 78, 79, 80, 81, 82, 83, -1,
1682 -1, 86, 87, -1, -1, -1, -1, -1, -1, -1,
1683 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1684 105, 106, 107, 108, -1, 110, -1, -1, -1, -1,
1685 -1, -1, -1, -1, -1, -1, -1, -1, 123, -1,
1686 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1687 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1688 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1689 -1, -1, 157, -1, 159, -1, -1, -1, -1, -1,
1690 -1, -1, -1, -1, -1, -1, -1, -1, -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, 196, -1, -1, -1, -1, -1, 202, 203, 204,
1694 205, 3, 4, 5, 6, 7, 8, -1, -1, -1,
1695 -1, -1, 217, 218, -1, -1, -1, -1, 20, 21,
1696 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
1697 32, 33, 34, -1, 36, 37, 38, 39, 40, 41,
1698 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1699 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1700 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1701 72, 73, 74, -1, 76, 77, 78, 79, 80, 81,
1702 82, 83, -1, -1, 86, 87, -1, -1, -1, -1,
1703 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1704 -1, -1, -1, 105, 106, 107, 108, -1, 110, -1,
1705 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1706 -1, 123, -1, 5, 6, 7, 8, -1, -1, -1,
1707 -1, -1, -1, -1, -1, -1, -1, -1, 20, 21,
1708 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
1709 -1, -1, -1, -1, -1, 157, -1, 159, -1, 41,
1710 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1711 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1712 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1713 72, 73, 74, -1, 196, 77, -1, -1, -1, -1,
1714 202, 203, 204, 205, -1, -1, -1, -1, -1, -1,
1715 -1, -1, -1, -1, -1, 217, -1, -1, -1, -1,
1716 -1, -1, -1, -1, 106, 107, 108, -1, -1, -1,
1717 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1718 -1, -1, 5, 6, 7, 8, -1, -1, -1, -1,
1719 -1, -1, -1, -1, -1, -1, -1, 20, 21, 22,
1720 23, 24, 25, 26, 27, 28, 29, 30, 31, -1,
1721 -1, -1, -1, -1, -1, 157, -1, 159, 41, 42,
1722 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1723 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1724 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
1725 73, 74, -1, -1, 77, -1, -1, -1, -1, -1,
1726 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1727 -1, -1, -1, -1, -1, -1, -1, 219, -1, -1,
1728 -1, -1, -1, 106, 107, 108, -1, -1, -1, -1,
1729 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1730 -1, 5, 6, 7, 8, -1, -1, -1, -1, -1,
1731 -1, -1, -1, -1, -1, -1, 20, 21, 22, 23,
1732 24, 25, 26, 27, 28, 29, 30, 31, -1, -1,
1733 -1, -1, -1, -1, 157, -1, 159, 41, 42, 43,
1734 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1735 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1736 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1737 74, -1, 76, 77, 78, 79, 80, 81, 82, 83,
1738 -1, -1, 86, 87, -1, -1, -1, -1, -1, -1,
1739 -1, -1, -1, -1, -1, -1, 219, -1, -1, -1,
1740 -1, -1, 106, 107, 108, -1, -1, -1, -1, -1,
1741 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1742 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1743 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1744 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1745 -1, -1, -1, 157, -1, 159, -1, -1, -1, -1,
1746 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1747 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1748 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1749 -1, -1, 196, -1, -1, -1, -1, -1, 202, 203,
1750 204, 205, 3, 4, 5, 6, 7, 8, -1, -1,
1751 -1, -1, -1, 217, -1, -1, -1, -1, -1, 20,
1752 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
1753 31, 32, 33, 34, -1, 36, 37, 38, 39, 40,
1754 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1755 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1756 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1757 71, 72, 73, 74, -1, 76, 77, 78, 79, 80,
1758 81, 82, 83, -1, -1, 86, 87, -1, -1, -1,
1759 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1760 -1, -1, -1, -1, 105, 106, 107, 108, -1, -1,
1761 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1762 -1, -1, 123, -1, -1, -1, -1, -1, -1, -1,
1763 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1764 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1765 -1, -1, -1, -1, -1, -1, 157, -1, 159, -1,
1766 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1767 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1768 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1769 5, 6, 7, 8, -1, 196, -1, -1, -1, -1,
1770 -1, 202, 203, 204, 205, 20, 21, 22, 23, 24,
1771 25, 26, 27, 28, 29, 30, 31, -1, -1, -1,
1772 -1, -1, -1, -1, -1, -1, 41, 42, 43, 44,
1773 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1774 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1775 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1776 -1, 76, 77, 78, 79, 80, 81, 82, 83, -1,
1777 -1, 86, 87, -1, -1, -1, -1, -1, -1, -1,
1778 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1779 -1, 106, 107, 108, -1, -1, -1, -1, -1, -1,
1780 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1781 -1, -1, -1, -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, 157, -1, 159, -1, -1, -1, -1, -1,
1785 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1786 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1787 -1, -1, -1, -1, -1, -1, 5, 6, 7, 8,
1788 -1, 196, -1, -1, 199, -1, -1, 202, 203, 204,
1789 205, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1790 29, 30, 31, -1, -1, -1, -1, -1, -1, -1,
1791 -1, -1, 41, 42, 43, 44, 45, 46, 47, 48,
1792 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1793 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1794 69, 70, 71, 72, 73, 74, -1, 76, 77, 78,
1795 79, 80, 81, 82, 83, -1, -1, 86, 87, -1,
1796 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1797 -1, -1, -1, -1, -1, -1, -1, 106, 107, 108,
1798 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1799 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1800 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1801 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1802 -1, -1, -1, -1, -1, -1, -1, -1, 157, -1,
1803 159, -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, -1, -1,
1806 -1, -1, 5, 6, 7, 8, -1, 196, -1, -1,
1807 199, -1, -1, 202, 203, 204, 205, 20, 21, 22,
1808 23, 24, 25, 26, 27, 28, 29, 30, 31, -1,
1809 -1, -1, -1, -1, -1, -1, -1, -1, 41, 42,
1810 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1811 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1812 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
1813 73, 74, -1, 76, 77, 78, 79, 80, 81, 82,
1814 83, -1, -1, 86, 87, -1, -1, -1, -1, -1,
1815 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1816 -1, -1, -1, 106, 107, 108, -1, -1, -1, -1,
1817 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1818 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1819 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1820 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1821 -1, -1, -1, -1, 157, -1, 159, -1, -1, -1,
1822 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1823 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1824 -1, -1, -1, -1, -1, -1, -1, -1, 5, 6,
1825 7, 8, -1, 196, -1, -1, 199, -1, -1, 202,
1826 203, 204, 205, 20, 21, 22, 23, 24, 25, 26,
1827 27, 28, 29, 30, 31, -1, -1, -1, -1, -1,
1828 -1, -1, -1, -1, 41, 42, 43, 44, 45, 46,
1829 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1830 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1831 67, 68, 69, 70, 71, 72, 73, 74, -1, 76,
1832 77, 78, 79, 80, 81, 82, 83, -1, -1, 86,
1833 87, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1834 -1, -1, -1, -1, -1, -1, -1, -1, -1, 106,
1835 107, 108, -1, -1, -1, -1, -1, -1, -1, -1,
1836 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1837 -1, -1, -1, -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 157, -1, 159, -1, -1, -1, -1, -1, -1, -1,
1841 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1842 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1843 -1, -1, -1, -1, 5, 6, 7, 8, -1, 196,
1844 -1, -1, -1, -1, -1, 202, 203, 204, 205, 20,
1845 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
1846 31, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1847 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1848 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1849 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1850 71, 72, 73, 74, -1, 76, 77, 78, 79, 80,
1851 81, 82, 83, -1, -1, 86, 87, -1, -1, -1,
1852 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1853 -1, -1, -1, -1, -1, 106, 107, 108, -1, -1,
1854 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1855 -1, -1, -1, -1, -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, 157, -1, 159, -1,
1859 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1860 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1861 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1862 5, 6, 7, 8, -1, 196, -1, -1, -1, -1,
1863 -1, 202, 203, 204, 205, 20, 21, 22, 23, 24,
1864 25, 26, 27, 28, 29, 30, 31, -1, -1, -1,
1865 -1, -1, -1, -1, -1, -1, 41, 42, 43, 44,
1866 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1867 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1868 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1869 -1, 76, 77, 78, 79, 80, 81, 82, 83, -1,
1870 -1, 86, 87, -1, -1, -1, -1, -1, -1, -1,
1871 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1872 -1, 106, 107, 108, -1, -1, -1, -1, -1, -1,
1873 -1, -1, -1, -1, -1, -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, 157, -1, 159, -1, -1, -1, -1, -1,
1878 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1879 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1880 -1, -1, -1, -1, 3, 4, 5, 6, 7, 8,
1881 -1, 196, -1, -1, -1, -1, -1, 202, 203, 204,
1882 205, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1883 29, 30, 31, 32, 33, 34, -1, 36, 37, 38,
1884 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1885 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1886 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1887 69, 70, 71, 72, 73, 74, -1, -1, 77, -1,
1888 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1889 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1890 -1, -1, -1, -1, -1, -1, 105, 106, 107, 108,
1891 -1, 110, -1, -1, -1, -1, -1, -1, -1, 118,
1892 119, 120, 121, 122, 123, 5, 6, 7, 8, -1,
1893 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1894 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
1895 30, 31, -1, -1, -1, -1, -1, -1, 157, -1,
1896 159, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1897 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1898 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1899 70, 71, 72, 73, 74, -1, -1, 77, 5, 6,
1900 7, 8, -1, -1, -1, -1, -1, -1, -1, -1,
1901 -1, -1, -1, 20, 21, 22, 23, 24, 25, 26,
1902 27, 28, 29, 30, 31, -1, 106, 107, 108, -1,
1903 -1, -1, -1, -1, 41, 42, 43, 44, 45, 46,
1904 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1905 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1906 67, 68, 69, 70, 71, 72, 73, 74, -1, -1,
1907 77, -1, -1, -1, -1, -1, -1, 157, -1, 159,
1908 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1909 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1910 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1911 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1912 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1913 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1914 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1918 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1919 symbol of state STATE-NUM. */
1920 static const yytype_uint16 yystos
[] =
1922 0, 111, 221, 223, 80, 0, 225, 115, 112, 222,
1923 227, 76, 77, 78, 226, 3, 4, 5, 6, 7,
1924 8, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1925 29, 30, 31, 32, 33, 34, 36, 37, 38, 39,
1926 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1927 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1928 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1929 70, 71, 72, 73, 74, 77, 105, 106, 107, 108,
1930 110, 118, 119, 120, 121, 122, 123, 157, 159, 224,
1931 228, 262, 263, 264, 265, 266, 271, 272, 273, 274,
1932 277, 279, 280, 281, 282, 283, 284, 285, 286, 311,
1933 312, 114, 33, 34, 37, 218, 226, 76, 78, 229,
1934 277, 280, 285, 115, 115, 115, 115, 115, 196, 311,
1935 217, 218, 298, 197, 201, 4, 33, 34, 35, 268,
1936 269, 278, 201, 217, 76, 78, 226, 229, 280, 280,
1937 281, 198, 282, 226, 281, 287, 288, 218, 280, 282,
1938 226, 275, 276, 9, 10, 11, 13, 14, 15, 16,
1939 17, 18, 19, 75, 79, 80, 81, 82, 83, 86,
1940 87, 196, 202, 203, 204, 205, 217, 218, 219, 229,
1941 230, 231, 233, 234, 235, 236, 237, 238, 239, 244,
1942 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
1943 255, 256, 257, 258, 260, 262, 263, 281, 292, 293,
1944 294, 295, 299, 300, 301, 304, 305, 306, 310, 268,
1945 267, 270, 281, 269, 226, 198, 216, 196, 199, 244,
1946 257, 261, 281, 115, 226, 289, 290, 219, 288, 287,
1947 217, 216, 197, 201, 217, 217, 293, 196, 196, 217,
1948 217, 260, 196, 260, 215, 196, 244, 244, 260, 219,
1949 296, 86, 87, 198, 200, 197, 197, 201, 74, 258,
1950 196, 95, 96, 97, 98, 99, 100, 101, 102, 103,
1951 104, 216, 259, 244, 206, 207, 208, 202, 203, 84,
1952 85, 88, 89, 209, 210, 90, 91, 211, 212, 213,
1953 92, 94, 93, 214, 201, 217, 219, 293, 226, 267,
1954 270, 198, 216, 199, 261, 258, 291, 199, 198, 201,
1955 217, 219, 80, 276, 75, 292, 300, 307, 260, 217,
1956 260, 215, 105, 260, 273, 303, 197, 299, 232, 260,
1957 226, 229, 240, 241, 242, 243, 258, 258, 244, 244,
1958 244, 246, 246, 247, 247, 248, 248, 248, 248, 249,
1959 249, 250, 251, 252, 253, 254, 255, 260, 258, 198,
1960 199, 261, 291, 216, 199, 261, 290, 196, 303, 308,
1961 309, 197, 197, 226, 197, 219, 199, 196, 197, 197,
1962 201, 74, 258, 215, 261, 216, 199, 291, 216, 199,
1963 260, 217, 197, 293, 302, 295, 216, 294, 297, 298,
1964 258, 258, 199, 291, 216, 291, 197, 260, 297, 12,
1968 #define yyerrok (yyerrstatus = 0)
1969 #define yyclearin (yychar = YYEMPTY)
1970 #define YYEMPTY (-2)
1973 #define YYACCEPT goto yyacceptlab
1974 #define YYABORT goto yyabortlab
1975 #define YYERROR goto yyerrorlab
1978 /* Like YYERROR except do call yyerror. This remains here temporarily
1979 to ease the transition to the new meaning of YYERROR, for GCC.
1980 Once GCC version 2 has supplanted version 1, this can go. However,
1981 YYFAIL appears to be in use. Nevertheless, it is formally deprecated
1982 in Bison 2.4.2's NEWS entry, where a plan to phase it out is
1985 #define YYFAIL goto yyerrlab
1987 /* This is here to suppress warnings from the GCC cpp's
1988 -Wunused-macros. Normally we don't worry about that warning, but
1989 some users do, and we want to make it easy for users to remove
1990 YYFAIL uses, which will produce warnings from Bison 2.5. */
1993 #define YYRECOVERING() (!!yyerrstatus)
1995 #define YYBACKUP(Token, Value) \
1997 if (yychar == YYEMPTY && yylen == 1) \
2001 yytoken = YYTRANSLATE (yychar); \
2007 yyerror (&yylloc, state, YY_("syntax error: cannot back up")); \
2014 #define YYERRCODE 256
2017 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
2018 If N is 0, then set CURRENT to the empty location which ends
2019 the previous symbol: RHS[0] (always defined). */
2021 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
2022 #ifndef YYLLOC_DEFAULT
2023 # define YYLLOC_DEFAULT(Current, Rhs, N) \
2027 (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
2028 (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
2029 (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
2030 (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
2034 (Current).first_line = (Current).last_line = \
2035 YYRHSLOC (Rhs, 0).last_line; \
2036 (Current).first_column = (Current).last_column = \
2037 YYRHSLOC (Rhs, 0).last_column; \
2043 /* YY_LOCATION_PRINT -- Print the location on the stream.
2044 This macro was not mandated originally: define only if we know
2045 we won't break user code: when these are the locations we know. */
2047 #ifndef YY_LOCATION_PRINT
2048 # if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
2049 # define YY_LOCATION_PRINT(File, Loc) \
2050 fprintf (File, "%d.%d-%d.%d", \
2051 (Loc).first_line, (Loc).first_column, \
2052 (Loc).last_line, (Loc).last_column)
2054 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2059 /* YYLEX -- calling `yylex' with the right arguments. */
2062 # define YYLEX yylex (&yylval, &yylloc, YYLEX_PARAM)
2064 # define YYLEX yylex (&yylval, &yylloc, scanner)
2067 /* Enable debugging if requested. */
2071 # include <stdio.h> /* INFRINGES ON USER NAME SPACE */
2072 # define YYFPRINTF fprintf
2075 # define YYDPRINTF(Args) \
2081 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
2085 YYFPRINTF (stderr, "%s ", Title); \
2086 yy_symbol_print (stderr, \
2087 Type, Value, Location, state); \
2088 YYFPRINTF (stderr, "\n"); \
2093 /*--------------------------------.
2094 | Print this symbol on YYOUTPUT. |
2095 `--------------------------------*/
2098 #if (defined __STDC__ || defined __C99__FUNC__ \
2099 || defined __cplusplus || defined _MSC_VER)
2101 yy_symbol_value_print (FILE *yyoutput
, int yytype
, YYSTYPE
const * const yyvaluep
, YYLTYPE
const * const yylocationp
, struct _mesa_glsl_parse_state
*state
)
2104 yy_symbol_value_print (yyoutput
, yytype
, yyvaluep
, yylocationp
, state
)
2107 YYSTYPE
const * const yyvaluep
;
2108 YYLTYPE
const * const yylocationp
;
2109 struct _mesa_glsl_parse_state
*state
;
2114 YYUSE (yylocationp
);
2117 if (yytype
< YYNTOKENS
)
2118 YYPRINT (yyoutput
, yytoknum
[yytype
], *yyvaluep
);
2130 /*--------------------------------.
2131 | Print this symbol on YYOUTPUT. |
2132 `--------------------------------*/
2134 #if (defined __STDC__ || defined __C99__FUNC__ \
2135 || defined __cplusplus || defined _MSC_VER)
2137 yy_symbol_print (FILE *yyoutput
, int yytype
, YYSTYPE
const * const yyvaluep
, YYLTYPE
const * const yylocationp
, struct _mesa_glsl_parse_state
*state
)
2140 yy_symbol_print (yyoutput
, yytype
, yyvaluep
, yylocationp
, state
)
2143 YYSTYPE
const * const yyvaluep
;
2144 YYLTYPE
const * const yylocationp
;
2145 struct _mesa_glsl_parse_state
*state
;
2148 if (yytype
< YYNTOKENS
)
2149 YYFPRINTF (yyoutput
, "token %s (", yytname
[yytype
]);
2151 YYFPRINTF (yyoutput
, "nterm %s (", yytname
[yytype
]);
2153 YY_LOCATION_PRINT (yyoutput
, *yylocationp
);
2154 YYFPRINTF (yyoutput
, ": ");
2155 yy_symbol_value_print (yyoutput
, yytype
, yyvaluep
, yylocationp
, state
);
2156 YYFPRINTF (yyoutput
, ")");
2159 /*------------------------------------------------------------------.
2160 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
2162 `------------------------------------------------------------------*/
2164 #if (defined __STDC__ || defined __C99__FUNC__ \
2165 || defined __cplusplus || defined _MSC_VER)
2167 yy_stack_print (yytype_int16
*yybottom
, yytype_int16
*yytop
)
2170 yy_stack_print (yybottom
, yytop
)
2171 yytype_int16
*yybottom
;
2172 yytype_int16
*yytop
;
2175 YYFPRINTF (stderr
, "Stack now");
2176 for (; yybottom
<= yytop
; yybottom
++)
2178 int yybot
= *yybottom
;
2179 YYFPRINTF (stderr
, " %d", yybot
);
2181 YYFPRINTF (stderr
, "\n");
2184 # define YY_STACK_PRINT(Bottom, Top) \
2187 yy_stack_print ((Bottom), (Top)); \
2191 /*------------------------------------------------.
2192 | Report that the YYRULE is going to be reduced. |
2193 `------------------------------------------------*/
2195 #if (defined __STDC__ || defined __C99__FUNC__ \
2196 || defined __cplusplus || defined _MSC_VER)
2198 yy_reduce_print (YYSTYPE
*yyvsp
, YYLTYPE
*yylsp
, int yyrule
, struct _mesa_glsl_parse_state
*state
)
2201 yy_reduce_print (yyvsp
, yylsp
, yyrule
, state
)
2205 struct _mesa_glsl_parse_state
*state
;
2208 int yynrhs
= yyr2
[yyrule
];
2210 unsigned long int yylno
= yyrline
[yyrule
];
2211 YYFPRINTF (stderr
, "Reducing stack by rule %d (line %lu):\n",
2213 /* The symbols being reduced. */
2214 for (yyi
= 0; yyi
< yynrhs
; yyi
++)
2216 YYFPRINTF (stderr
, " $%d = ", yyi
+ 1);
2217 yy_symbol_print (stderr
, yyrhs
[yyprhs
[yyrule
] + yyi
],
2218 &(yyvsp
[(yyi
+ 1) - (yynrhs
)])
2219 , &(yylsp
[(yyi
+ 1) - (yynrhs
)]) , state
);
2220 YYFPRINTF (stderr
, "\n");
2224 # define YY_REDUCE_PRINT(Rule) \
2227 yy_reduce_print (yyvsp, yylsp, Rule, state); \
2230 /* Nonzero means print parse trace. It is left uninitialized so that
2231 multiple parsers can coexist. */
2233 #else /* !YYDEBUG */
2234 # define YYDPRINTF(Args)
2235 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
2236 # define YY_STACK_PRINT(Bottom, Top)
2237 # define YY_REDUCE_PRINT(Rule)
2238 #endif /* !YYDEBUG */
2241 /* YYINITDEPTH -- initial size of the parser's stacks. */
2243 # define YYINITDEPTH 200
2246 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
2247 if the built-in stack extension method is used).
2249 Do not make this value too large; the results are undefined if
2250 YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
2251 evaluated with infinite-precision integer arithmetic. */
2254 # define YYMAXDEPTH 10000
2262 # if defined __GLIBC__ && defined _STRING_H
2263 # define yystrlen strlen
2265 /* Return the length of YYSTR. */
2266 #if (defined __STDC__ || defined __C99__FUNC__ \
2267 || defined __cplusplus || defined _MSC_VER)
2269 yystrlen (const char *yystr
)
2277 for (yylen
= 0; yystr
[yylen
]; yylen
++)
2285 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
2286 # define yystpcpy stpcpy
2288 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
2290 #if (defined __STDC__ || defined __C99__FUNC__ \
2291 || defined __cplusplus || defined _MSC_VER)
2293 yystpcpy (char *yydest
, const char *yysrc
)
2296 yystpcpy (yydest
, yysrc
)
2302 const char *yys
= yysrc
;
2304 while ((*yyd
++ = *yys
++) != '\0')
2313 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
2314 quotes and backslashes, so that it's suitable for yyerror. The
2315 heuristic is that double-quoting is unnecessary unless the string
2316 contains an apostrophe, a comma, or backslash (other than
2317 backslash-backslash). YYSTR is taken from yytname. If YYRES is
2318 null, do not copy; instead, return the length of what the result
2321 yytnamerr (char *yyres
, const char *yystr
)
2326 char const *yyp
= yystr
;
2333 goto do_not_strip_quotes
;
2337 goto do_not_strip_quotes
;
2350 do_not_strip_quotes
: ;
2354 return yystrlen (yystr
);
2356 return yystpcpy (yyres
, yystr
) - yyres
;
2360 /* Copy into YYRESULT an error message about the unexpected token
2361 YYCHAR while in state YYSTATE. Return the number of bytes copied,
2362 including the terminating null byte. If YYRESULT is null, do not
2363 copy anything; just return the number of bytes that would be
2364 copied. As a special case, return 0 if an ordinary "syntax error"
2365 message will do. Return YYSIZE_MAXIMUM if overflow occurs during
2366 size calculation. */
2368 yysyntax_error (char *yyresult
, int yystate
, int yychar
)
2370 int yyn
= yypact
[yystate
];
2372 if (! (YYPACT_NINF
< yyn
&& yyn
<= YYLAST
))
2376 int yytype
= YYTRANSLATE (yychar
);
2377 YYSIZE_T yysize0
= yytnamerr (0, yytname
[yytype
]);
2378 YYSIZE_T yysize
= yysize0
;
2380 int yysize_overflow
= 0;
2381 enum { YYERROR_VERBOSE_ARGS_MAXIMUM
= 5 };
2382 char const *yyarg
[YYERROR_VERBOSE_ARGS_MAXIMUM
];
2386 /* This is so xgettext sees the translatable formats that are
2387 constructed on the fly. */
2388 YY_("syntax error, unexpected %s");
2389 YY_("syntax error, unexpected %s, expecting %s");
2390 YY_("syntax error, unexpected %s, expecting %s or %s");
2391 YY_("syntax error, unexpected %s, expecting %s or %s or %s");
2392 YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
2396 static char const yyunexpected
[] = "syntax error, unexpected %s";
2397 static char const yyexpecting
[] = ", expecting %s";
2398 static char const yyor
[] = " or %s";
2399 char yyformat
[sizeof yyunexpected
2400 + sizeof yyexpecting
- 1
2401 + ((YYERROR_VERBOSE_ARGS_MAXIMUM
- 2)
2402 * (sizeof yyor
- 1))];
2403 char const *yyprefix
= yyexpecting
;
2405 /* Start YYX at -YYN if negative to avoid negative indexes in
2407 int yyxbegin
= yyn
< 0 ? -yyn
: 0;
2409 /* Stay within bounds of both yycheck and yytname. */
2410 int yychecklim
= YYLAST
- yyn
+ 1;
2411 int yyxend
= yychecklim
< YYNTOKENS
? yychecklim
: YYNTOKENS
;
2414 yyarg
[0] = yytname
[yytype
];
2415 yyfmt
= yystpcpy (yyformat
, yyunexpected
);
2417 for (yyx
= yyxbegin
; yyx
< yyxend
; ++yyx
)
2418 if (yycheck
[yyx
+ yyn
] == yyx
&& yyx
!= YYTERROR
)
2420 if (yycount
== YYERROR_VERBOSE_ARGS_MAXIMUM
)
2424 yyformat
[sizeof yyunexpected
- 1] = '\0';
2427 yyarg
[yycount
++] = yytname
[yyx
];
2428 yysize1
= yysize
+ yytnamerr (0, yytname
[yyx
]);
2429 yysize_overflow
|= (yysize1
< yysize
);
2431 yyfmt
= yystpcpy (yyfmt
, yyprefix
);
2435 yyf
= YY_(yyformat
);
2436 yysize1
= yysize
+ yystrlen (yyf
);
2437 yysize_overflow
|= (yysize1
< yysize
);
2440 if (yysize_overflow
)
2441 return YYSIZE_MAXIMUM
;
2445 /* Avoid sprintf, as that infringes on the user's name space.
2446 Don't have undefined behavior even if the translation
2447 produced a string with the wrong number of "%s"s. */
2448 char *yyp
= yyresult
;
2450 while ((*yyp
= *yyf
) != '\0')
2452 if (*yyp
== '%' && yyf
[1] == 's' && yyi
< yycount
)
2454 yyp
+= yytnamerr (yyp
, yyarg
[yyi
++]);
2467 #endif /* YYERROR_VERBOSE */
2470 /*-----------------------------------------------.
2471 | Release the memory associated to this symbol. |
2472 `-----------------------------------------------*/
2475 #if (defined __STDC__ || defined __C99__FUNC__ \
2476 || defined __cplusplus || defined _MSC_VER)
2478 yydestruct (const char *yymsg
, int yytype
, YYSTYPE
*yyvaluep
, YYLTYPE
*yylocationp
, struct _mesa_glsl_parse_state
*state
)
2481 yydestruct (yymsg
, yytype
, yyvaluep
, yylocationp
, state
)
2485 YYLTYPE
*yylocationp
;
2486 struct _mesa_glsl_parse_state
*state
;
2490 YYUSE (yylocationp
);
2495 YY_SYMBOL_PRINT (yymsg
, yytype
, yyvaluep
, yylocationp
);
2505 /* Prevent warnings from -Wmissing-prototypes. */
2506 #ifdef YYPARSE_PARAM
2507 #if defined __STDC__ || defined __cplusplus
2508 int yyparse (void *YYPARSE_PARAM
);
2512 #else /* ! YYPARSE_PARAM */
2513 #if defined __STDC__ || defined __cplusplus
2514 int yyparse (struct _mesa_glsl_parse_state
*state
);
2518 #endif /* ! YYPARSE_PARAM */
2524 /*-------------------------.
2525 | yyparse or yypush_parse. |
2526 `-------------------------*/
2528 #ifdef YYPARSE_PARAM
2529 #if (defined __STDC__ || defined __C99__FUNC__ \
2530 || defined __cplusplus || defined _MSC_VER)
2532 yyparse (void *YYPARSE_PARAM
)
2535 yyparse (YYPARSE_PARAM
)
2536 void *YYPARSE_PARAM
;
2538 #else /* ! YYPARSE_PARAM */
2539 #if (defined __STDC__ || defined __C99__FUNC__ \
2540 || defined __cplusplus || defined _MSC_VER)
2542 yyparse (struct _mesa_glsl_parse_state
*state
)
2546 struct _mesa_glsl_parse_state
*state
;
2550 /* The lookahead symbol. */
2553 /* The semantic value of the lookahead symbol. */
2556 /* Location data for the lookahead symbol. */
2559 /* Number of syntax errors so far. */
2563 /* Number of tokens to shift before error messages enabled. */
2566 /* The stacks and their tools:
2567 `yyss': related to states.
2568 `yyvs': related to semantic values.
2569 `yyls': related to locations.
2571 Refer to the stacks thru separate pointers, to allow yyoverflow
2572 to reallocate them elsewhere. */
2574 /* The state stack. */
2575 yytype_int16 yyssa
[YYINITDEPTH
];
2577 yytype_int16
*yyssp
;
2579 /* The semantic value stack. */
2580 YYSTYPE yyvsa
[YYINITDEPTH
];
2584 /* The location stack. */
2585 YYLTYPE yylsa
[YYINITDEPTH
];
2589 /* The locations where the error started and ended. */
2590 YYLTYPE yyerror_range
[3];
2592 YYSIZE_T yystacksize
;
2596 /* Lookahead token as an internal (translated) token number. */
2598 /* The variables used to return semantic value and location from the
2604 /* Buffer for error messages, and its allocated size. */
2606 char *yymsg
= yymsgbuf
;
2607 YYSIZE_T yymsg_alloc
= sizeof yymsgbuf
;
2610 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N), yylsp -= (N))
2612 /* The number of symbols on the RHS of the reduced rule.
2613 Keep to zero when no symbol should be popped. */
2620 yystacksize
= YYINITDEPTH
;
2622 YYDPRINTF ((stderr
, "Starting parse\n"));
2627 yychar
= YYEMPTY
; /* Cause a token to be read. */
2629 /* Initialize stack pointers.
2630 Waste one element of value and location stack
2631 so that they stay on the same level as the state stack.
2632 The wasted elements are never initialized. */
2637 #if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
2638 /* Initialize the default location before parsing starts. */
2639 yylloc
.first_line
= yylloc
.last_line
= 1;
2640 yylloc
.first_column
= yylloc
.last_column
= 1;
2643 /* User initialization code. */
2645 /* Line 1251 of yacc.c */
2646 #line 41 "glsl_parser.yy"
2648 yylloc
.first_line
= 1;
2649 yylloc
.first_column
= 1;
2650 yylloc
.last_line
= 1;
2651 yylloc
.last_column
= 1;
2655 /* Line 1251 of yacc.c */
2656 #line 2657 "glsl_parser.cpp"
2661 /*------------------------------------------------------------.
2662 | yynewstate -- Push a new state, which is found in yystate. |
2663 `------------------------------------------------------------*/
2665 /* In all cases, when you get here, the value and location stacks
2666 have just been pushed. So pushing a state here evens the stacks. */
2672 if (yyss
+ yystacksize
- 1 <= yyssp
)
2674 /* Get the current used size of the three stacks, in elements. */
2675 YYSIZE_T yysize
= yyssp
- yyss
+ 1;
2679 /* Give user a chance to reallocate the stack. Use copies of
2680 these so that the &'s don't force the real ones into
2682 YYSTYPE
*yyvs1
= yyvs
;
2683 yytype_int16
*yyss1
= yyss
;
2684 YYLTYPE
*yyls1
= yyls
;
2686 /* Each stack pointer address is followed by the size of the
2687 data in use in that stack, in bytes. This used to be a
2688 conditional around just the two extra args, but that might
2689 be undefined if yyoverflow is a macro. */
2690 yyoverflow (YY_("memory exhausted"),
2691 &yyss1
, yysize
* sizeof (*yyssp
),
2692 &yyvs1
, yysize
* sizeof (*yyvsp
),
2693 &yyls1
, yysize
* sizeof (*yylsp
),
2700 #else /* no yyoverflow */
2701 # ifndef YYSTACK_RELOCATE
2702 goto yyexhaustedlab
;
2704 /* Extend the stack our own way. */
2705 if (YYMAXDEPTH
<= yystacksize
)
2706 goto yyexhaustedlab
;
2708 if (YYMAXDEPTH
< yystacksize
)
2709 yystacksize
= YYMAXDEPTH
;
2712 yytype_int16
*yyss1
= yyss
;
2713 union yyalloc
*yyptr
=
2714 (union yyalloc
*) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize
));
2716 goto yyexhaustedlab
;
2717 YYSTACK_RELOCATE (yyss_alloc
, yyss
);
2718 YYSTACK_RELOCATE (yyvs_alloc
, yyvs
);
2719 YYSTACK_RELOCATE (yyls_alloc
, yyls
);
2720 # undef YYSTACK_RELOCATE
2722 YYSTACK_FREE (yyss1
);
2725 #endif /* no yyoverflow */
2727 yyssp
= yyss
+ yysize
- 1;
2728 yyvsp
= yyvs
+ yysize
- 1;
2729 yylsp
= yyls
+ yysize
- 1;
2731 YYDPRINTF ((stderr
, "Stack size increased to %lu\n",
2732 (unsigned long int) yystacksize
));
2734 if (yyss
+ yystacksize
- 1 <= yyssp
)
2738 YYDPRINTF ((stderr
, "Entering state %d\n", yystate
));
2740 if (yystate
== YYFINAL
)
2750 /* Do appropriate processing given the current state. Read a
2751 lookahead token if we need one and don't already have one. */
2753 /* First try to decide what to do without reference to lookahead token. */
2754 yyn
= yypact
[yystate
];
2755 if (yyn
== YYPACT_NINF
)
2758 /* Not known => get a lookahead token if don't already have one. */
2760 /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
2761 if (yychar
== YYEMPTY
)
2763 YYDPRINTF ((stderr
, "Reading a token: "));
2767 if (yychar
<= YYEOF
)
2769 yychar
= yytoken
= YYEOF
;
2770 YYDPRINTF ((stderr
, "Now at end of input.\n"));
2774 yytoken
= YYTRANSLATE (yychar
);
2775 YY_SYMBOL_PRINT ("Next token is", yytoken
, &yylval
, &yylloc
);
2778 /* If the proper action on seeing token YYTOKEN is to reduce or to
2779 detect an error, take that action. */
2781 if (yyn
< 0 || YYLAST
< yyn
|| yycheck
[yyn
] != yytoken
)
2786 if (yyn
== 0 || yyn
== YYTABLE_NINF
)
2792 /* Count tokens shifted since error; after three, turn off error
2797 /* Shift the lookahead token. */
2798 YY_SYMBOL_PRINT ("Shifting", yytoken
, &yylval
, &yylloc
);
2800 /* Discard the shifted token. */
2809 /*-----------------------------------------------------------.
2810 | yydefault -- do the default action for the current state. |
2811 `-----------------------------------------------------------*/
2813 yyn
= yydefact
[yystate
];
2819 /*-----------------------------.
2820 | yyreduce -- Do a reduction. |
2821 `-----------------------------*/
2823 /* yyn is the number of a rule to reduce with. */
2826 /* If YYLEN is nonzero, implement the default value of the action:
2829 Otherwise, the following line sets YYVAL to garbage.
2830 This behavior is undocumented and Bison
2831 users should not rely upon it. Assigning to YYVAL
2832 unconditionally makes the parser a bit smaller, and it avoids a
2833 GCC warning that YYVAL may be used uninitialized. */
2834 yyval
= yyvsp
[1-yylen
];
2836 /* Default location. */
2837 YYLLOC_DEFAULT (yyloc
, (yylsp
- yylen
), yylen
);
2838 YY_REDUCE_PRINT (yyn
);
2843 /* Line 1464 of yacc.c */
2844 #line 218 "glsl_parser.yy"
2846 _mesa_glsl_initialize_types(state
);
2852 /* Line 1464 of yacc.c */
2853 #line 222 "glsl_parser.yy"
2855 delete state
->symbols
;
2856 state
->symbols
= new(ralloc_parent(state
)) glsl_symbol_table
;
2857 _mesa_glsl_initialize_types(state
);
2863 /* Line 1464 of yacc.c */
2864 #line 232 "glsl_parser.yy"
2866 bool supported
= false;
2868 switch ((yyvsp
[(2) - (3)].n
)) {
2870 state
->es_shader
= true;
2871 supported
= state
->Const
.GLSL_100ES
;
2874 supported
= state
->Const
.GLSL_110
;
2877 supported
= state
->Const
.GLSL_120
;
2880 supported
= state
->Const
.GLSL_130
;
2887 state
->language_version
= (yyvsp
[(2) - (3)].n
);
2888 state
->version_string
=
2889 ralloc_asprintf(state
, "GLSL%s %d.%02d",
2890 state
->es_shader
? " ES" : "",
2891 state
->language_version
/ 100,
2892 state
->language_version
% 100);
2895 _mesa_glsl_error(& (yylsp
[(2) - (3)]), state
, "%s is not supported. "
2896 "Supported versions are: %s\n",
2897 state
->version_string
,
2898 state
->supported_version_string
);
2905 /* Line 1464 of yacc.c */
2906 #line 276 "glsl_parser.yy"
2908 if (state
->language_version
< 120) {
2909 _mesa_glsl_warning(& (yylsp
[(1) - (2)]), state
,
2910 "pragma `invariant(all)' not supported in %s",
2911 state
->version_string
);
2913 state
->all_invariant
= true;
2920 /* Line 1464 of yacc.c */
2921 #line 300 "glsl_parser.yy"
2923 if (!_mesa_glsl_process_extension((yyvsp
[(2) - (5)].identifier
), & (yylsp
[(2) - (5)]), (yyvsp
[(4) - (5)].identifier
), & (yylsp
[(4) - (5)]), state
)) {
2931 /* Line 1464 of yacc.c */
2932 #line 309 "glsl_parser.yy"
2934 /* FINISHME: The NULL test is required because pragmas are set to
2935 * FINISHME: NULL. (See production rule for external_declaration.)
2937 if ((yyvsp
[(1) - (1)].node
) != NULL
)
2938 state
->translation_unit
.push_tail(& (yyvsp
[(1) - (1)].node
)->link
);
2944 /* Line 1464 of yacc.c */
2945 #line 317 "glsl_parser.yy"
2947 /* FINISHME: The NULL test is required because pragmas are set to
2948 * FINISHME: NULL. (See production rule for external_declaration.)
2950 if ((yyvsp
[(2) - (2)].node
) != NULL
)
2951 state
->translation_unit
.push_tail(& (yyvsp
[(2) - (2)].node
)->link
);
2957 /* Line 1464 of yacc.c */
2958 #line 333 "glsl_parser.yy"
2961 (yyval
.expression
) = new(ctx
) ast_expression(ast_identifier
, NULL
, NULL
, NULL
);
2962 (yyval
.expression
)->set_location(yylloc
);
2963 (yyval
.expression
)->primary_expression
.identifier
= (yyvsp
[(1) - (1)].identifier
);
2969 /* Line 1464 of yacc.c */
2970 #line 340 "glsl_parser.yy"
2973 (yyval
.expression
) = new(ctx
) ast_expression(ast_int_constant
, NULL
, NULL
, NULL
);
2974 (yyval
.expression
)->set_location(yylloc
);
2975 (yyval
.expression
)->primary_expression
.int_constant
= (yyvsp
[(1) - (1)].n
);
2981 /* Line 1464 of yacc.c */
2982 #line 347 "glsl_parser.yy"
2985 (yyval
.expression
) = new(ctx
) ast_expression(ast_uint_constant
, NULL
, NULL
, NULL
);
2986 (yyval
.expression
)->set_location(yylloc
);
2987 (yyval
.expression
)->primary_expression
.uint_constant
= (yyvsp
[(1) - (1)].n
);
2993 /* Line 1464 of yacc.c */
2994 #line 354 "glsl_parser.yy"
2997 (yyval
.expression
) = new(ctx
) ast_expression(ast_float_constant
, NULL
, NULL
, NULL
);
2998 (yyval
.expression
)->set_location(yylloc
);
2999 (yyval
.expression
)->primary_expression
.float_constant
= (yyvsp
[(1) - (1)].real
);
3005 /* Line 1464 of yacc.c */
3006 #line 361 "glsl_parser.yy"
3009 (yyval
.expression
) = new(ctx
) ast_expression(ast_bool_constant
, NULL
, NULL
, NULL
);
3010 (yyval
.expression
)->set_location(yylloc
);
3011 (yyval
.expression
)->primary_expression
.bool_constant
= (yyvsp
[(1) - (1)].n
);
3017 /* Line 1464 of yacc.c */
3018 #line 368 "glsl_parser.yy"
3020 (yyval
.expression
) = (yyvsp
[(2) - (3)].expression
);
3026 /* Line 1464 of yacc.c */
3027 #line 376 "glsl_parser.yy"
3030 (yyval
.expression
) = new(ctx
) ast_expression(ast_array_index
, (yyvsp
[(1) - (4)].expression
), (yyvsp
[(3) - (4)].expression
), NULL
);
3031 (yyval
.expression
)->set_location(yylloc
);
3037 /* Line 1464 of yacc.c */
3038 #line 382 "glsl_parser.yy"
3040 (yyval
.expression
) = (yyvsp
[(1) - (1)].expression
);
3046 /* Line 1464 of yacc.c */
3047 #line 386 "glsl_parser.yy"
3050 (yyval
.expression
) = new(ctx
) ast_expression(ast_field_selection
, (yyvsp
[(1) - (3)].expression
), NULL
, NULL
);
3051 (yyval
.expression
)->set_location(yylloc
);
3052 (yyval
.expression
)->primary_expression
.identifier
= (yyvsp
[(3) - (3)].identifier
);
3058 /* Line 1464 of yacc.c */
3059 #line 393 "glsl_parser.yy"
3062 (yyval
.expression
) = new(ctx
) ast_expression(ast_post_inc
, (yyvsp
[(1) - (2)].expression
), NULL
, NULL
);
3063 (yyval
.expression
)->set_location(yylloc
);
3069 /* Line 1464 of yacc.c */
3070 #line 399 "glsl_parser.yy"
3073 (yyval
.expression
) = new(ctx
) ast_expression(ast_post_dec
, (yyvsp
[(1) - (2)].expression
), NULL
, NULL
);
3074 (yyval
.expression
)->set_location(yylloc
);
3080 /* Line 1464 of yacc.c */
3081 #line 417 "glsl_parser.yy"
3084 (yyval
.expression
) = new(ctx
) ast_expression(ast_field_selection
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
), NULL
);
3085 (yyval
.expression
)->set_location(yylloc
);
3091 /* Line 1464 of yacc.c */
3092 #line 436 "glsl_parser.yy"
3094 (yyval
.expression
) = (yyvsp
[(1) - (2)].expression
);
3095 (yyval
.expression
)->set_location(yylloc
);
3096 (yyval
.expression
)->expressions
.push_tail(& (yyvsp
[(2) - (2)].expression
)->link
);
3102 /* Line 1464 of yacc.c */
3103 #line 442 "glsl_parser.yy"
3105 (yyval
.expression
) = (yyvsp
[(1) - (3)].expression
);
3106 (yyval
.expression
)->set_location(yylloc
);
3107 (yyval
.expression
)->expressions
.push_tail(& (yyvsp
[(3) - (3)].expression
)->link
);
3113 /* Line 1464 of yacc.c */
3114 #line 458 "glsl_parser.yy"
3117 (yyval
.expression
) = new(ctx
) ast_function_expression((yyvsp
[(1) - (1)].type_specifier
));
3118 (yyval
.expression
)->set_location(yylloc
);
3124 /* Line 1464 of yacc.c */
3125 #line 464 "glsl_parser.yy"
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 471 "glsl_parser.yy"
3140 ast_expression
*callee
= new(ctx
) ast_expression((yyvsp
[(1) - (1)].identifier
));
3141 (yyval
.expression
) = new(ctx
) ast_function_expression(callee
);
3142 (yyval
.expression
)->set_location(yylloc
);
3148 /* Line 1464 of yacc.c */
3149 #line 491 "glsl_parser.yy"
3151 (yyval
.expression
) = (yyvsp
[(1) - (2)].expression
);
3152 (yyval
.expression
)->set_location(yylloc
);
3153 (yyval
.expression
)->expressions
.push_tail(& (yyvsp
[(2) - (2)].expression
)->link
);
3159 /* Line 1464 of yacc.c */
3160 #line 497 "glsl_parser.yy"
3162 (yyval
.expression
) = (yyvsp
[(1) - (3)].expression
);
3163 (yyval
.expression
)->set_location(yylloc
);
3164 (yyval
.expression
)->expressions
.push_tail(& (yyvsp
[(3) - (3)].expression
)->link
);
3170 /* Line 1464 of yacc.c */
3171 #line 509 "glsl_parser.yy"
3174 ast_expression
*callee
= new(ctx
) ast_expression((yyvsp
[(1) - (2)].identifier
));
3175 (yyval
.expression
) = new(ctx
) ast_function_expression(callee
);
3176 (yyval
.expression
)->set_location(yylloc
);
3182 /* Line 1464 of yacc.c */
3183 #line 521 "glsl_parser.yy"
3186 (yyval
.expression
) = new(ctx
) ast_expression(ast_pre_inc
, (yyvsp
[(2) - (2)].expression
), NULL
, NULL
);
3187 (yyval
.expression
)->set_location(yylloc
);
3193 /* Line 1464 of yacc.c */
3194 #line 527 "glsl_parser.yy"
3197 (yyval
.expression
) = new(ctx
) ast_expression(ast_pre_dec
, (yyvsp
[(2) - (2)].expression
), NULL
, NULL
);
3198 (yyval
.expression
)->set_location(yylloc
);
3204 /* Line 1464 of yacc.c */
3205 #line 533 "glsl_parser.yy"
3208 (yyval
.expression
) = new(ctx
) ast_expression((yyvsp
[(1) - (2)].n
), (yyvsp
[(2) - (2)].expression
), NULL
, NULL
);
3209 (yyval
.expression
)->set_location(yylloc
);
3215 /* Line 1464 of yacc.c */
3216 #line 542 "glsl_parser.yy"
3217 { (yyval
.n
) = ast_plus
; ;}
3222 /* Line 1464 of yacc.c */
3223 #line 543 "glsl_parser.yy"
3224 { (yyval
.n
) = ast_neg
; ;}
3229 /* Line 1464 of yacc.c */
3230 #line 544 "glsl_parser.yy"
3231 { (yyval
.n
) = ast_logic_not
; ;}
3236 /* Line 1464 of yacc.c */
3237 #line 545 "glsl_parser.yy"
3238 { (yyval
.n
) = ast_bit_not
; ;}
3243 /* Line 1464 of yacc.c */
3244 #line 551 "glsl_parser.yy"
3247 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_mul
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3248 (yyval
.expression
)->set_location(yylloc
);
3254 /* Line 1464 of yacc.c */
3255 #line 557 "glsl_parser.yy"
3258 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_div
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3259 (yyval
.expression
)->set_location(yylloc
);
3265 /* Line 1464 of yacc.c */
3266 #line 563 "glsl_parser.yy"
3269 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_mod
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3270 (yyval
.expression
)->set_location(yylloc
);
3276 /* Line 1464 of yacc.c */
3277 #line 573 "glsl_parser.yy"
3280 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_add
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3281 (yyval
.expression
)->set_location(yylloc
);
3287 /* Line 1464 of yacc.c */
3288 #line 579 "glsl_parser.yy"
3291 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_sub
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3292 (yyval
.expression
)->set_location(yylloc
);
3298 /* Line 1464 of yacc.c */
3299 #line 589 "glsl_parser.yy"
3302 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_lshift
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3303 (yyval
.expression
)->set_location(yylloc
);
3309 /* Line 1464 of yacc.c */
3310 #line 595 "glsl_parser.yy"
3313 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_rshift
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3314 (yyval
.expression
)->set_location(yylloc
);
3320 /* Line 1464 of yacc.c */
3321 #line 605 "glsl_parser.yy"
3324 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_less
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3325 (yyval
.expression
)->set_location(yylloc
);
3331 /* Line 1464 of yacc.c */
3332 #line 611 "glsl_parser.yy"
3335 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_greater
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3336 (yyval
.expression
)->set_location(yylloc
);
3342 /* Line 1464 of yacc.c */
3343 #line 617 "glsl_parser.yy"
3346 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_lequal
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3347 (yyval
.expression
)->set_location(yylloc
);
3353 /* Line 1464 of yacc.c */
3354 #line 623 "glsl_parser.yy"
3357 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_gequal
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3358 (yyval
.expression
)->set_location(yylloc
);
3364 /* Line 1464 of yacc.c */
3365 #line 633 "glsl_parser.yy"
3368 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_equal
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3369 (yyval
.expression
)->set_location(yylloc
);
3375 /* Line 1464 of yacc.c */
3376 #line 639 "glsl_parser.yy"
3379 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_nequal
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3380 (yyval
.expression
)->set_location(yylloc
);
3386 /* Line 1464 of yacc.c */
3387 #line 649 "glsl_parser.yy"
3390 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_bit_and
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3391 (yyval
.expression
)->set_location(yylloc
);
3397 /* Line 1464 of yacc.c */
3398 #line 659 "glsl_parser.yy"
3401 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_bit_xor
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3402 (yyval
.expression
)->set_location(yylloc
);
3408 /* Line 1464 of yacc.c */
3409 #line 669 "glsl_parser.yy"
3412 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_bit_or
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3413 (yyval
.expression
)->set_location(yylloc
);
3419 /* Line 1464 of yacc.c */
3420 #line 679 "glsl_parser.yy"
3423 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_logic_and
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3424 (yyval
.expression
)->set_location(yylloc
);
3430 /* Line 1464 of yacc.c */
3431 #line 689 "glsl_parser.yy"
3434 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_logic_xor
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3435 (yyval
.expression
)->set_location(yylloc
);
3441 /* Line 1464 of yacc.c */
3442 #line 699 "glsl_parser.yy"
3445 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_logic_or
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3446 (yyval
.expression
)->set_location(yylloc
);
3452 /* Line 1464 of yacc.c */
3453 #line 709 "glsl_parser.yy"
3456 (yyval
.expression
) = new(ctx
) ast_expression(ast_conditional
, (yyvsp
[(1) - (5)].expression
), (yyvsp
[(3) - (5)].expression
), (yyvsp
[(5) - (5)].expression
));
3457 (yyval
.expression
)->set_location(yylloc
);
3463 /* Line 1464 of yacc.c */
3464 #line 719 "glsl_parser.yy"
3467 (yyval
.expression
) = new(ctx
) ast_expression((yyvsp
[(2) - (3)].n
), (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
), NULL
);
3468 (yyval
.expression
)->set_location(yylloc
);
3474 /* Line 1464 of yacc.c */
3475 #line 727 "glsl_parser.yy"
3476 { (yyval
.n
) = ast_assign
; ;}
3481 /* Line 1464 of yacc.c */
3482 #line 728 "glsl_parser.yy"
3483 { (yyval
.n
) = ast_mul_assign
; ;}
3488 /* Line 1464 of yacc.c */
3489 #line 729 "glsl_parser.yy"
3490 { (yyval
.n
) = ast_div_assign
; ;}
3495 /* Line 1464 of yacc.c */
3496 #line 730 "glsl_parser.yy"
3497 { (yyval
.n
) = ast_mod_assign
; ;}
3502 /* Line 1464 of yacc.c */
3503 #line 731 "glsl_parser.yy"
3504 { (yyval
.n
) = ast_add_assign
; ;}
3509 /* Line 1464 of yacc.c */
3510 #line 732 "glsl_parser.yy"
3511 { (yyval
.n
) = ast_sub_assign
; ;}
3516 /* Line 1464 of yacc.c */
3517 #line 733 "glsl_parser.yy"
3518 { (yyval
.n
) = ast_ls_assign
; ;}
3523 /* Line 1464 of yacc.c */
3524 #line 734 "glsl_parser.yy"
3525 { (yyval
.n
) = ast_rs_assign
; ;}
3530 /* Line 1464 of yacc.c */
3531 #line 735 "glsl_parser.yy"
3532 { (yyval
.n
) = ast_and_assign
; ;}
3537 /* Line 1464 of yacc.c */
3538 #line 736 "glsl_parser.yy"
3539 { (yyval
.n
) = ast_xor_assign
; ;}
3544 /* Line 1464 of yacc.c */
3545 #line 737 "glsl_parser.yy"
3546 { (yyval
.n
) = ast_or_assign
; ;}
3551 /* Line 1464 of yacc.c */
3552 #line 742 "glsl_parser.yy"
3554 (yyval
.expression
) = (yyvsp
[(1) - (1)].expression
);
3560 /* Line 1464 of yacc.c */
3561 #line 746 "glsl_parser.yy"
3564 if ((yyvsp
[(1) - (3)].expression
)->oper
!= ast_sequence
) {
3565 (yyval
.expression
) = new(ctx
) ast_expression(ast_sequence
, NULL
, NULL
, NULL
);
3566 (yyval
.expression
)->set_location(yylloc
);
3567 (yyval
.expression
)->expressions
.push_tail(& (yyvsp
[(1) - (3)].expression
)->link
);
3569 (yyval
.expression
) = (yyvsp
[(1) - (3)].expression
);
3572 (yyval
.expression
)->expressions
.push_tail(& (yyvsp
[(3) - (3)].expression
)->link
);
3578 /* Line 1464 of yacc.c */
3579 #line 766 "glsl_parser.yy"
3581 state
->symbols
->pop_scope();
3582 (yyval
.node
) = (yyvsp
[(1) - (2)].function
);
3588 /* Line 1464 of yacc.c */
3589 #line 771 "glsl_parser.yy"
3591 (yyval
.node
) = (yyvsp
[(1) - (2)].declarator_list
);
3597 /* Line 1464 of yacc.c */
3598 #line 775 "glsl_parser.yy"
3600 (yyvsp
[(3) - (4)].type_specifier
)->precision
= (yyvsp
[(2) - (4)].n
);
3601 (yyvsp
[(3) - (4)].type_specifier
)->is_precision_statement
= true;
3602 (yyval
.node
) = (yyvsp
[(3) - (4)].type_specifier
);
3608 /* Line 1464 of yacc.c */
3609 #line 793 "glsl_parser.yy"
3611 (yyval
.function
) = (yyvsp
[(1) - (2)].function
);
3612 (yyval
.function
)->parameters
.push_tail(& (yyvsp
[(2) - (2)].parameter_declarator
)->link
);
3618 /* Line 1464 of yacc.c */
3619 #line 798 "glsl_parser.yy"
3621 (yyval
.function
) = (yyvsp
[(1) - (3)].function
);
3622 (yyval
.function
)->parameters
.push_tail(& (yyvsp
[(3) - (3)].parameter_declarator
)->link
);
3628 /* Line 1464 of yacc.c */
3629 #line 806 "glsl_parser.yy"
3632 (yyval
.function
) = new(ctx
) ast_function();
3633 (yyval
.function
)->set_location(yylloc
);
3634 (yyval
.function
)->return_type
= (yyvsp
[(1) - (3)].fully_specified_type
);
3635 (yyval
.function
)->identifier
= (yyvsp
[(2) - (3)].identifier
);
3637 state
->symbols
->add_function(new(state
) ir_function((yyvsp
[(2) - (3)].identifier
)));
3638 state
->symbols
->push_scope();
3644 /* Line 1464 of yacc.c */
3645 #line 820 "glsl_parser.yy"
3648 (yyval
.parameter_declarator
) = new(ctx
) ast_parameter_declarator();
3649 (yyval
.parameter_declarator
)->set_location(yylloc
);
3650 (yyval
.parameter_declarator
)->type
= new(ctx
) ast_fully_specified_type();
3651 (yyval
.parameter_declarator
)->type
->set_location(yylloc
);
3652 (yyval
.parameter_declarator
)->type
->specifier
= (yyvsp
[(1) - (2)].type_specifier
);
3653 (yyval
.parameter_declarator
)->identifier
= (yyvsp
[(2) - (2)].identifier
);
3659 /* Line 1464 of yacc.c */
3660 #line 830 "glsl_parser.yy"
3663 (yyval
.parameter_declarator
) = new(ctx
) ast_parameter_declarator();
3664 (yyval
.parameter_declarator
)->set_location(yylloc
);
3665 (yyval
.parameter_declarator
)->type
= new(ctx
) ast_fully_specified_type();
3666 (yyval
.parameter_declarator
)->type
->set_location(yylloc
);
3667 (yyval
.parameter_declarator
)->type
->specifier
= (yyvsp
[(1) - (5)].type_specifier
);
3668 (yyval
.parameter_declarator
)->identifier
= (yyvsp
[(2) - (5)].identifier
);
3669 (yyval
.parameter_declarator
)->is_array
= true;
3670 (yyval
.parameter_declarator
)->array_size
= (yyvsp
[(4) - (5)].expression
);
3676 /* Line 1464 of yacc.c */
3677 #line 845 "glsl_parser.yy"
3679 (yyvsp
[(1) - (3)].type_qualifier
).flags
.i
|= (yyvsp
[(2) - (3)].type_qualifier
).flags
.i
;
3681 (yyval
.parameter_declarator
) = (yyvsp
[(3) - (3)].parameter_declarator
);
3682 (yyval
.parameter_declarator
)->type
->qualifier
= (yyvsp
[(1) - (3)].type_qualifier
);
3688 /* Line 1464 of yacc.c */
3689 #line 852 "glsl_parser.yy"
3691 (yyval
.parameter_declarator
) = (yyvsp
[(2) - (2)].parameter_declarator
);
3692 (yyval
.parameter_declarator
)->type
->qualifier
= (yyvsp
[(1) - (2)].type_qualifier
);
3698 /* Line 1464 of yacc.c */
3699 #line 857 "glsl_parser.yy"
3702 (yyvsp
[(1) - (3)].type_qualifier
).flags
.i
|= (yyvsp
[(2) - (3)].type_qualifier
).flags
.i
;
3704 (yyval
.parameter_declarator
) = new(ctx
) ast_parameter_declarator();
3705 (yyval
.parameter_declarator
)->set_location(yylloc
);
3706 (yyval
.parameter_declarator
)->type
= new(ctx
) ast_fully_specified_type();
3707 (yyval
.parameter_declarator
)->type
->qualifier
= (yyvsp
[(1) - (3)].type_qualifier
);
3708 (yyval
.parameter_declarator
)->type
->specifier
= (yyvsp
[(3) - (3)].type_specifier
);
3714 /* Line 1464 of yacc.c */
3715 #line 868 "glsl_parser.yy"
3718 (yyval
.parameter_declarator
) = new(ctx
) ast_parameter_declarator();
3719 (yyval
.parameter_declarator
)->set_location(yylloc
);
3720 (yyval
.parameter_declarator
)->type
= new(ctx
) ast_fully_specified_type();
3721 (yyval
.parameter_declarator
)->type
->qualifier
= (yyvsp
[(1) - (2)].type_qualifier
);
3722 (yyval
.parameter_declarator
)->type
->specifier
= (yyvsp
[(2) - (2)].type_specifier
);
3728 /* Line 1464 of yacc.c */
3729 #line 880 "glsl_parser.yy"
3731 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
3737 /* Line 1464 of yacc.c */
3738 #line 884 "glsl_parser.yy"
3740 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
3741 (yyval
.type_qualifier
).flags
.q
.in
= 1;
3747 /* Line 1464 of yacc.c */
3748 #line 889 "glsl_parser.yy"
3750 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
3751 (yyval
.type_qualifier
).flags
.q
.out
= 1;
3757 /* Line 1464 of yacc.c */
3758 #line 894 "glsl_parser.yy"
3760 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
3761 (yyval
.type_qualifier
).flags
.q
.in
= 1;
3762 (yyval
.type_qualifier
).flags
.q
.out
= 1;
3768 /* Line 1464 of yacc.c */
3769 #line 908 "glsl_parser.yy"
3772 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(3) - (3)].identifier
), false, NULL
, NULL
);
3773 decl
->set_location(yylloc
);
3775 (yyval
.declarator_list
) = (yyvsp
[(1) - (3)].declarator_list
);
3776 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3777 state
->symbols
->add_variable(new(state
) ir_variable(NULL
, (yyvsp
[(3) - (3)].identifier
), ir_var_auto
));
3783 /* Line 1464 of yacc.c */
3784 #line 918 "glsl_parser.yy"
3787 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(3) - (5)].identifier
), true, NULL
, NULL
);
3788 decl
->set_location(yylloc
);
3790 (yyval
.declarator_list
) = (yyvsp
[(1) - (5)].declarator_list
);
3791 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3792 state
->symbols
->add_variable(new(state
) ir_variable(NULL
, (yyvsp
[(3) - (5)].identifier
), ir_var_auto
));
3798 /* Line 1464 of yacc.c */
3799 #line 928 "glsl_parser.yy"
3802 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(3) - (6)].identifier
), true, (yyvsp
[(5) - (6)].expression
), NULL
);
3803 decl
->set_location(yylloc
);
3805 (yyval
.declarator_list
) = (yyvsp
[(1) - (6)].declarator_list
);
3806 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3807 state
->symbols
->add_variable(new(state
) ir_variable(NULL
, (yyvsp
[(3) - (6)].identifier
), ir_var_auto
));
3813 /* Line 1464 of yacc.c */
3814 #line 938 "glsl_parser.yy"
3817 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(3) - (7)].identifier
), true, NULL
, (yyvsp
[(7) - (7)].expression
));
3818 decl
->set_location(yylloc
);
3820 (yyval
.declarator_list
) = (yyvsp
[(1) - (7)].declarator_list
);
3821 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3822 state
->symbols
->add_variable(new(state
) ir_variable(NULL
, (yyvsp
[(3) - (7)].identifier
), ir_var_auto
));
3828 /* Line 1464 of yacc.c */
3829 #line 948 "glsl_parser.yy"
3832 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(3) - (8)].identifier
), true, (yyvsp
[(5) - (8)].expression
), (yyvsp
[(8) - (8)].expression
));
3833 decl
->set_location(yylloc
);
3835 (yyval
.declarator_list
) = (yyvsp
[(1) - (8)].declarator_list
);
3836 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3837 state
->symbols
->add_variable(new(state
) ir_variable(NULL
, (yyvsp
[(3) - (8)].identifier
), ir_var_auto
));
3843 /* Line 1464 of yacc.c */
3844 #line 958 "glsl_parser.yy"
3847 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(3) - (5)].identifier
), false, NULL
, (yyvsp
[(5) - (5)].expression
));
3848 decl
->set_location(yylloc
);
3850 (yyval
.declarator_list
) = (yyvsp
[(1) - (5)].declarator_list
);
3851 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3852 state
->symbols
->add_variable(new(state
) ir_variable(NULL
, (yyvsp
[(3) - (5)].identifier
), ir_var_auto
));
3858 /* Line 1464 of yacc.c */
3859 #line 972 "glsl_parser.yy"
3862 if ((yyvsp
[(1) - (1)].fully_specified_type
)->specifier
->type_specifier
!= ast_struct
) {
3863 _mesa_glsl_error(& (yylsp
[(1) - (1)]), state
, "empty declaration list\n");
3866 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list((yyvsp
[(1) - (1)].fully_specified_type
));
3867 (yyval
.declarator_list
)->set_location(yylloc
);
3874 /* Line 1464 of yacc.c */
3875 #line 983 "glsl_parser.yy"
3878 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(2) - (2)].identifier
), false, NULL
, NULL
);
3880 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list((yyvsp
[(1) - (2)].fully_specified_type
));
3881 (yyval
.declarator_list
)->set_location(yylloc
);
3882 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3888 /* Line 1464 of yacc.c */
3889 #line 992 "glsl_parser.yy"
3892 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(2) - (4)].identifier
), true, NULL
, NULL
);
3894 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list((yyvsp
[(1) - (4)].fully_specified_type
));
3895 (yyval
.declarator_list
)->set_location(yylloc
);
3896 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3902 /* Line 1464 of yacc.c */
3903 #line 1001 "glsl_parser.yy"
3906 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(2) - (5)].identifier
), true, (yyvsp
[(4) - (5)].expression
), NULL
);
3908 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list((yyvsp
[(1) - (5)].fully_specified_type
));
3909 (yyval
.declarator_list
)->set_location(yylloc
);
3910 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3916 /* Line 1464 of yacc.c */
3917 #line 1010 "glsl_parser.yy"
3920 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(2) - (6)].identifier
), true, NULL
, (yyvsp
[(6) - (6)].expression
));
3922 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list((yyvsp
[(1) - (6)].fully_specified_type
));
3923 (yyval
.declarator_list
)->set_location(yylloc
);
3924 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3930 /* Line 1464 of yacc.c */
3931 #line 1019 "glsl_parser.yy"
3934 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(2) - (7)].identifier
), true, (yyvsp
[(4) - (7)].expression
), (yyvsp
[(7) - (7)].expression
));
3936 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list((yyvsp
[(1) - (7)].fully_specified_type
));
3937 (yyval
.declarator_list
)->set_location(yylloc
);
3938 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3944 /* Line 1464 of yacc.c */
3945 #line 1028 "glsl_parser.yy"
3948 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(2) - (4)].identifier
), false, NULL
, (yyvsp
[(4) - (4)].expression
));
3950 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list((yyvsp
[(1) - (4)].fully_specified_type
));
3951 (yyval
.declarator_list
)->set_location(yylloc
);
3952 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3958 /* Line 1464 of yacc.c */
3959 #line 1037 "glsl_parser.yy"
3962 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(2) - (2)].identifier
), false, NULL
, NULL
);
3964 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list(NULL
);
3965 (yyval
.declarator_list
)->set_location(yylloc
);
3966 (yyval
.declarator_list
)->invariant
= true;
3968 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3974 /* Line 1464 of yacc.c */
3975 #line 1051 "glsl_parser.yy"
3978 (yyval
.fully_specified_type
) = new(ctx
) ast_fully_specified_type();
3979 (yyval
.fully_specified_type
)->set_location(yylloc
);
3980 (yyval
.fully_specified_type
)->specifier
= (yyvsp
[(1) - (1)].type_specifier
);
3986 /* Line 1464 of yacc.c */
3987 #line 1058 "glsl_parser.yy"
3990 (yyval
.fully_specified_type
) = new(ctx
) ast_fully_specified_type();
3991 (yyval
.fully_specified_type
)->set_location(yylloc
);
3992 (yyval
.fully_specified_type
)->qualifier
= (yyvsp
[(1) - (2)].type_qualifier
);
3993 (yyval
.fully_specified_type
)->specifier
= (yyvsp
[(2) - (2)].type_specifier
);
3999 /* Line 1464 of yacc.c */
4000 #line 1069 "glsl_parser.yy"
4002 (yyval
.type_qualifier
) = (yyvsp
[(3) - (4)].type_qualifier
);
4008 /* Line 1464 of yacc.c */
4009 #line 1077 "glsl_parser.yy"
4011 if (((yyvsp
[(1) - (3)].type_qualifier
).flags
.i
& (yyvsp
[(3) - (3)].type_qualifier
).flags
.i
) != 0) {
4012 _mesa_glsl_error(& (yylsp
[(3) - (3)]), state
,
4013 "duplicate layout qualifiers used\n");
4017 (yyval
.type_qualifier
).flags
.i
= (yyvsp
[(1) - (3)].type_qualifier
).flags
.i
| (yyvsp
[(3) - (3)].type_qualifier
).flags
.i
;
4019 if ((yyvsp
[(1) - (3)].type_qualifier
).flags
.q
.explicit_location
)
4020 (yyval
.type_qualifier
).location
= (yyvsp
[(1) - (3)].type_qualifier
).location
;
4022 if ((yyvsp
[(3) - (3)].type_qualifier
).flags
.q
.explicit_location
)
4023 (yyval
.type_qualifier
).location
= (yyvsp
[(3) - (3)].type_qualifier
).location
;
4029 /* Line 1464 of yacc.c */
4030 #line 1096 "glsl_parser.yy"
4032 bool got_one
= false;
4034 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
4036 /* Layout qualifiers for ARB_fragment_coord_conventions. */
4037 if (!got_one
&& state
->ARB_fragment_coord_conventions_enable
) {
4038 if (strcmp((yyvsp
[(1) - (1)].identifier
), "origin_upper_left") == 0) {
4040 (yyval
.type_qualifier
).flags
.q
.origin_upper_left
= 1;
4041 } else if (strcmp((yyvsp
[(1) - (1)].identifier
), "pixel_center_integer") == 0) {
4043 (yyval
.type_qualifier
).flags
.q
.pixel_center_integer
= 1;
4046 if (got_one
&& state
->ARB_fragment_coord_conventions_warn
) {
4047 _mesa_glsl_warning(& (yylsp
[(1) - (1)]), state
,
4048 "GL_ARB_fragment_coord_conventions layout "
4049 "identifier `%s' used\n", (yyvsp
[(1) - (1)].identifier
));
4053 /* Layout qualifiers for AMD_conservative_depth. */
4054 if (!got_one
&& state
->AMD_conservative_depth_enable
) {
4055 if (strcmp((yyvsp
[(1) - (1)].identifier
), "depth_any") == 0) {
4057 (yyval
.type_qualifier
).flags
.q
.depth_any
= 1;
4058 } else if (strcmp((yyvsp
[(1) - (1)].identifier
), "depth_greater") == 0) {
4060 (yyval
.type_qualifier
).flags
.q
.depth_greater
= 1;
4061 } else if (strcmp((yyvsp
[(1) - (1)].identifier
), "depth_less") == 0) {
4063 (yyval
.type_qualifier
).flags
.q
.depth_less
= 1;
4064 } else if (strcmp((yyvsp
[(1) - (1)].identifier
), "depth_unchanged") == 0) {
4066 (yyval
.type_qualifier
).flags
.q
.depth_unchanged
= 1;
4069 if (got_one
&& state
->AMD_conservative_depth_warn
) {
4070 _mesa_glsl_warning(& (yylsp
[(1) - (1)]), state
,
4071 "GL_AMD_conservative_depth "
4072 "layout qualifier `%s' is used\n", (yyvsp
[(1) - (1)].identifier
));
4077 _mesa_glsl_error(& (yylsp
[(1) - (1)]), state
, "unrecognized layout identifier "
4078 "`%s'\n", (yyvsp
[(1) - (1)].identifier
));
4086 /* Line 1464 of yacc.c */
4087 #line 1148 "glsl_parser.yy"
4089 bool got_one
= false;
4091 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
4093 if (state
->ARB_explicit_attrib_location_enable
) {
4094 /* FINISHME: Handle 'index' once GL_ARB_blend_func_exteneded and
4095 * FINISHME: GLSL 1.30 (or later) are supported.
4097 if (strcmp("location", (yyvsp
[(1) - (3)].identifier
)) == 0) {
4100 (yyval
.type_qualifier
).flags
.q
.explicit_location
= 1;
4102 if ((yyvsp
[(3) - (3)].n
) >= 0) {
4103 (yyval
.type_qualifier
).location
= (yyvsp
[(3) - (3)].n
);
4105 _mesa_glsl_error(& (yylsp
[(3) - (3)]), state
,
4106 "invalid location %d specified\n", (yyvsp
[(3) - (3)].n
));
4112 /* If the identifier didn't match any known layout identifiers,
4116 _mesa_glsl_error(& (yylsp
[(1) - (3)]), state
, "unrecognized layout identifier "
4117 "`%s'\n", (yyvsp
[(1) - (3)].identifier
));
4119 } else if (state
->ARB_explicit_attrib_location_warn
) {
4120 _mesa_glsl_warning(& (yylsp
[(1) - (3)]), state
,
4121 "GL_ARB_explicit_attrib_location layout "
4122 "identifier `%s' used\n", (yyvsp
[(1) - (3)].identifier
));
4129 /* Line 1464 of yacc.c */
4130 #line 1189 "glsl_parser.yy"
4132 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
4133 (yyval
.type_qualifier
).flags
.q
.smooth
= 1;
4139 /* Line 1464 of yacc.c */
4140 #line 1194 "glsl_parser.yy"
4142 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
4143 (yyval
.type_qualifier
).flags
.q
.flat
= 1;
4149 /* Line 1464 of yacc.c */
4150 #line 1199 "glsl_parser.yy"
4152 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
4153 (yyval
.type_qualifier
).flags
.q
.noperspective
= 1;
4159 /* Line 1464 of yacc.c */
4160 #line 1207 "glsl_parser.yy"
4162 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
4163 (yyval
.type_qualifier
).flags
.q
.constant
= 1;
4169 /* Line 1464 of yacc.c */
4170 #line 1217 "glsl_parser.yy"
4172 (yyval
.type_qualifier
) = (yyvsp
[(1) - (2)].type_qualifier
);
4173 (yyval
.type_qualifier
).flags
.i
|= (yyvsp
[(2) - (2)].type_qualifier
).flags
.i
;
4179 /* Line 1464 of yacc.c */
4180 #line 1223 "glsl_parser.yy"
4182 (yyval
.type_qualifier
) = (yyvsp
[(1) - (2)].type_qualifier
);
4183 (yyval
.type_qualifier
).flags
.i
|= (yyvsp
[(2) - (2)].type_qualifier
).flags
.i
;
4189 /* Line 1464 of yacc.c */
4190 #line 1228 "glsl_parser.yy"
4192 (yyval
.type_qualifier
) = (yyvsp
[(2) - (2)].type_qualifier
);
4193 (yyval
.type_qualifier
).flags
.q
.invariant
= 1;
4199 /* Line 1464 of yacc.c */
4200 #line 1233 "glsl_parser.yy"
4202 (yyval
.type_qualifier
) = (yyvsp
[(2) - (3)].type_qualifier
);
4203 (yyval
.type_qualifier
).flags
.i
|= (yyvsp
[(3) - (3)].type_qualifier
).flags
.i
;
4204 (yyval
.type_qualifier
).flags
.q
.invariant
= 1;
4210 /* Line 1464 of yacc.c */
4211 #line 1239 "glsl_parser.yy"
4213 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
4214 (yyval
.type_qualifier
).flags
.q
.invariant
= 1;
4220 /* Line 1464 of yacc.c */
4221 #line 1247 "glsl_parser.yy"
4223 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
4224 (yyval
.type_qualifier
).flags
.q
.constant
= 1;
4230 /* Line 1464 of yacc.c */
4231 #line 1252 "glsl_parser.yy"
4233 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
4234 (yyval
.type_qualifier
).flags
.q
.attribute
= 1;
4240 /* Line 1464 of yacc.c */
4241 #line 1257 "glsl_parser.yy"
4243 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
4244 (yyval
.type_qualifier
).flags
.q
.varying
= 1;
4250 /* Line 1464 of yacc.c */
4251 #line 1262 "glsl_parser.yy"
4253 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
4254 (yyval
.type_qualifier
).flags
.q
.centroid
= 1;
4255 (yyval
.type_qualifier
).flags
.q
.varying
= 1;
4261 /* Line 1464 of yacc.c */
4262 #line 1268 "glsl_parser.yy"
4264 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
4265 (yyval
.type_qualifier
).flags
.q
.in
= 1;
4271 /* Line 1464 of yacc.c */
4272 #line 1273 "glsl_parser.yy"
4274 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
4275 (yyval
.type_qualifier
).flags
.q
.out
= 1;
4281 /* Line 1464 of yacc.c */
4282 #line 1278 "glsl_parser.yy"
4284 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
4285 (yyval
.type_qualifier
).flags
.q
.centroid
= 1; (yyval
.type_qualifier
).flags
.q
.in
= 1;
4291 /* Line 1464 of yacc.c */
4292 #line 1283 "glsl_parser.yy"
4294 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
4295 (yyval
.type_qualifier
).flags
.q
.centroid
= 1; (yyval
.type_qualifier
).flags
.q
.out
= 1;
4301 /* Line 1464 of yacc.c */
4302 #line 1288 "glsl_parser.yy"
4304 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
4305 (yyval
.type_qualifier
).flags
.q
.uniform
= 1;
4311 /* Line 1464 of yacc.c */
4312 #line 1296 "glsl_parser.yy"
4314 (yyval
.type_specifier
) = (yyvsp
[(1) - (1)].type_specifier
);
4320 /* Line 1464 of yacc.c */
4321 #line 1300 "glsl_parser.yy"
4323 (yyval
.type_specifier
) = (yyvsp
[(2) - (2)].type_specifier
);
4324 (yyval
.type_specifier
)->precision
= (yyvsp
[(1) - (2)].n
);
4330 /* Line 1464 of yacc.c */
4331 #line 1309 "glsl_parser.yy"
4333 (yyval
.type_specifier
) = (yyvsp
[(1) - (3)].type_specifier
);
4334 (yyval
.type_specifier
)->is_array
= true;
4335 (yyval
.type_specifier
)->array_size
= NULL
;
4341 /* Line 1464 of yacc.c */
4342 #line 1315 "glsl_parser.yy"
4344 (yyval
.type_specifier
) = (yyvsp
[(1) - (4)].type_specifier
);
4345 (yyval
.type_specifier
)->is_array
= true;
4346 (yyval
.type_specifier
)->array_size
= (yyvsp
[(3) - (4)].expression
);
4352 /* Line 1464 of yacc.c */
4353 #line 1324 "glsl_parser.yy"
4356 (yyval
.type_specifier
) = new(ctx
) ast_type_specifier((yyvsp
[(1) - (1)].n
));
4357 (yyval
.type_specifier
)->set_location(yylloc
);
4363 /* Line 1464 of yacc.c */
4364 #line 1330 "glsl_parser.yy"
4367 (yyval
.type_specifier
) = new(ctx
) ast_type_specifier((yyvsp
[(1) - (1)].struct_specifier
));
4368 (yyval
.type_specifier
)->set_location(yylloc
);
4374 /* Line 1464 of yacc.c */
4375 #line 1336 "glsl_parser.yy"
4378 (yyval
.type_specifier
) = new(ctx
) ast_type_specifier((yyvsp
[(1) - (1)].identifier
));
4379 (yyval
.type_specifier
)->set_location(yylloc
);
4385 /* Line 1464 of yacc.c */
4386 #line 1344 "glsl_parser.yy"
4387 { (yyval
.n
) = ast_void
; ;}
4392 /* Line 1464 of yacc.c */
4393 #line 1345 "glsl_parser.yy"
4394 { (yyval
.n
) = ast_float
; ;}
4399 /* Line 1464 of yacc.c */
4400 #line 1346 "glsl_parser.yy"
4401 { (yyval
.n
) = ast_int
; ;}
4406 /* Line 1464 of yacc.c */
4407 #line 1347 "glsl_parser.yy"
4408 { (yyval
.n
) = ast_uint
; ;}
4413 /* Line 1464 of yacc.c */
4414 #line 1348 "glsl_parser.yy"
4415 { (yyval
.n
) = ast_bool
; ;}
4420 /* Line 1464 of yacc.c */
4421 #line 1349 "glsl_parser.yy"
4422 { (yyval
.n
) = ast_vec2
; ;}
4427 /* Line 1464 of yacc.c */
4428 #line 1350 "glsl_parser.yy"
4429 { (yyval
.n
) = ast_vec3
; ;}
4434 /* Line 1464 of yacc.c */
4435 #line 1351 "glsl_parser.yy"
4436 { (yyval
.n
) = ast_vec4
; ;}
4441 /* Line 1464 of yacc.c */
4442 #line 1352 "glsl_parser.yy"
4443 { (yyval
.n
) = ast_bvec2
; ;}
4448 /* Line 1464 of yacc.c */
4449 #line 1353 "glsl_parser.yy"
4450 { (yyval
.n
) = ast_bvec3
; ;}
4455 /* Line 1464 of yacc.c */
4456 #line 1354 "glsl_parser.yy"
4457 { (yyval
.n
) = ast_bvec4
; ;}
4462 /* Line 1464 of yacc.c */
4463 #line 1355 "glsl_parser.yy"
4464 { (yyval
.n
) = ast_ivec2
; ;}
4469 /* Line 1464 of yacc.c */
4470 #line 1356 "glsl_parser.yy"
4471 { (yyval
.n
) = ast_ivec3
; ;}
4476 /* Line 1464 of yacc.c */
4477 #line 1357 "glsl_parser.yy"
4478 { (yyval
.n
) = ast_ivec4
; ;}
4483 /* Line 1464 of yacc.c */
4484 #line 1358 "glsl_parser.yy"
4485 { (yyval
.n
) = ast_uvec2
; ;}
4490 /* Line 1464 of yacc.c */
4491 #line 1359 "glsl_parser.yy"
4492 { (yyval
.n
) = ast_uvec3
; ;}
4497 /* Line 1464 of yacc.c */
4498 #line 1360 "glsl_parser.yy"
4499 { (yyval
.n
) = ast_uvec4
; ;}
4504 /* Line 1464 of yacc.c */
4505 #line 1361 "glsl_parser.yy"
4506 { (yyval
.n
) = ast_mat2
; ;}
4511 /* Line 1464 of yacc.c */
4512 #line 1362 "glsl_parser.yy"
4513 { (yyval
.n
) = ast_mat2x3
; ;}
4518 /* Line 1464 of yacc.c */
4519 #line 1363 "glsl_parser.yy"
4520 { (yyval
.n
) = ast_mat2x4
; ;}
4525 /* Line 1464 of yacc.c */
4526 #line 1364 "glsl_parser.yy"
4527 { (yyval
.n
) = ast_mat3x2
; ;}
4532 /* Line 1464 of yacc.c */
4533 #line 1365 "glsl_parser.yy"
4534 { (yyval
.n
) = ast_mat3
; ;}
4539 /* Line 1464 of yacc.c */
4540 #line 1366 "glsl_parser.yy"
4541 { (yyval
.n
) = ast_mat3x4
; ;}
4546 /* Line 1464 of yacc.c */
4547 #line 1367 "glsl_parser.yy"
4548 { (yyval
.n
) = ast_mat4x2
; ;}
4553 /* Line 1464 of yacc.c */
4554 #line 1368 "glsl_parser.yy"
4555 { (yyval
.n
) = ast_mat4x3
; ;}
4560 /* Line 1464 of yacc.c */
4561 #line 1369 "glsl_parser.yy"
4562 { (yyval
.n
) = ast_mat4
; ;}
4567 /* Line 1464 of yacc.c */
4568 #line 1370 "glsl_parser.yy"
4569 { (yyval
.n
) = ast_sampler1d
; ;}
4574 /* Line 1464 of yacc.c */
4575 #line 1371 "glsl_parser.yy"
4576 { (yyval
.n
) = ast_sampler2d
; ;}
4581 /* Line 1464 of yacc.c */
4582 #line 1372 "glsl_parser.yy"
4583 { (yyval
.n
) = ast_sampler2drect
; ;}
4588 /* Line 1464 of yacc.c */
4589 #line 1373 "glsl_parser.yy"
4590 { (yyval
.n
) = ast_sampler3d
; ;}
4595 /* Line 1464 of yacc.c */
4596 #line 1374 "glsl_parser.yy"
4597 { (yyval
.n
) = ast_samplercube
; ;}
4602 /* Line 1464 of yacc.c */
4603 #line 1375 "glsl_parser.yy"
4604 { (yyval
.n
) = ast_sampler1dshadow
; ;}
4609 /* Line 1464 of yacc.c */
4610 #line 1376 "glsl_parser.yy"
4611 { (yyval
.n
) = ast_sampler2dshadow
; ;}
4616 /* Line 1464 of yacc.c */
4617 #line 1377 "glsl_parser.yy"
4618 { (yyval
.n
) = ast_sampler2drectshadow
; ;}
4623 /* Line 1464 of yacc.c */
4624 #line 1378 "glsl_parser.yy"
4625 { (yyval
.n
) = ast_samplercubeshadow
; ;}
4630 /* Line 1464 of yacc.c */
4631 #line 1379 "glsl_parser.yy"
4632 { (yyval
.n
) = ast_sampler1darray
; ;}
4637 /* Line 1464 of yacc.c */
4638 #line 1380 "glsl_parser.yy"
4639 { (yyval
.n
) = ast_sampler2darray
; ;}
4644 /* Line 1464 of yacc.c */
4645 #line 1381 "glsl_parser.yy"
4646 { (yyval
.n
) = ast_sampler1darrayshadow
; ;}
4651 /* Line 1464 of yacc.c */
4652 #line 1382 "glsl_parser.yy"
4653 { (yyval
.n
) = ast_sampler2darrayshadow
; ;}
4658 /* Line 1464 of yacc.c */
4659 #line 1383 "glsl_parser.yy"
4660 { (yyval
.n
) = ast_isampler1d
; ;}
4665 /* Line 1464 of yacc.c */
4666 #line 1384 "glsl_parser.yy"
4667 { (yyval
.n
) = ast_isampler2d
; ;}
4672 /* Line 1464 of yacc.c */
4673 #line 1385 "glsl_parser.yy"
4674 { (yyval
.n
) = ast_isampler3d
; ;}
4679 /* Line 1464 of yacc.c */
4680 #line 1386 "glsl_parser.yy"
4681 { (yyval
.n
) = ast_isamplercube
; ;}
4686 /* Line 1464 of yacc.c */
4687 #line 1387 "glsl_parser.yy"
4688 { (yyval
.n
) = ast_isampler1darray
; ;}
4693 /* Line 1464 of yacc.c */
4694 #line 1388 "glsl_parser.yy"
4695 { (yyval
.n
) = ast_isampler2darray
; ;}
4700 /* Line 1464 of yacc.c */
4701 #line 1389 "glsl_parser.yy"
4702 { (yyval
.n
) = ast_usampler1d
; ;}
4707 /* Line 1464 of yacc.c */
4708 #line 1390 "glsl_parser.yy"
4709 { (yyval
.n
) = ast_usampler2d
; ;}
4714 /* Line 1464 of yacc.c */
4715 #line 1391 "glsl_parser.yy"
4716 { (yyval
.n
) = ast_usampler3d
; ;}
4721 /* Line 1464 of yacc.c */
4722 #line 1392 "glsl_parser.yy"
4723 { (yyval
.n
) = ast_usamplercube
; ;}
4728 /* Line 1464 of yacc.c */
4729 #line 1393 "glsl_parser.yy"
4730 { (yyval
.n
) = ast_usampler1darray
; ;}
4735 /* Line 1464 of yacc.c */
4736 #line 1394 "glsl_parser.yy"
4737 { (yyval
.n
) = ast_usampler2darray
; ;}
4742 /* Line 1464 of yacc.c */
4743 #line 1398 "glsl_parser.yy"
4745 if (!state
->es_shader
&& state
->language_version
< 130)
4746 _mesa_glsl_error(& (yylsp
[(1) - (1)]), state
,
4747 "precision qualifier forbidden "
4748 "in %s (1.30 or later "
4750 state
->version_string
);
4752 (yyval
.n
) = ast_precision_high
;
4758 /* Line 1464 of yacc.c */
4759 #line 1408 "glsl_parser.yy"
4761 if (!state
->es_shader
&& state
->language_version
< 130)
4762 _mesa_glsl_error(& (yylsp
[(1) - (1)]), state
,
4763 "precision qualifier forbidden "
4764 "in %s (1.30 or later "
4766 state
->version_string
);
4768 (yyval
.n
) = ast_precision_medium
;
4774 /* Line 1464 of yacc.c */
4775 #line 1418 "glsl_parser.yy"
4777 if (!state
->es_shader
&& state
->language_version
< 130)
4778 _mesa_glsl_error(& (yylsp
[(1) - (1)]), state
,
4779 "precision qualifier forbidden "
4780 "in %s (1.30 or later "
4782 state
->version_string
);
4784 (yyval
.n
) = ast_precision_low
;
4790 /* Line 1464 of yacc.c */
4791 #line 1432 "glsl_parser.yy"
4794 (yyval
.struct_specifier
) = new(ctx
) ast_struct_specifier((yyvsp
[(2) - (5)].identifier
), (yyvsp
[(4) - (5)].node
));
4795 (yyval
.struct_specifier
)->set_location(yylloc
);
4796 state
->symbols
->add_type((yyvsp
[(2) - (5)].identifier
), glsl_type::void_type
);
4802 /* Line 1464 of yacc.c */
4803 #line 1439 "glsl_parser.yy"
4806 (yyval
.struct_specifier
) = new(ctx
) ast_struct_specifier(NULL
, (yyvsp
[(3) - (4)].node
));
4807 (yyval
.struct_specifier
)->set_location(yylloc
);
4813 /* Line 1464 of yacc.c */
4814 #line 1448 "glsl_parser.yy"
4816 (yyval
.node
) = (ast_node
*) (yyvsp
[(1) - (1)].declarator_list
);
4817 (yyvsp
[(1) - (1)].declarator_list
)->link
.self_link();
4823 /* Line 1464 of yacc.c */
4824 #line 1453 "glsl_parser.yy"
4826 (yyval
.node
) = (ast_node
*) (yyvsp
[(1) - (2)].node
);
4827 (yyval
.node
)->link
.insert_before(& (yyvsp
[(2) - (2)].declarator_list
)->link
);
4833 /* Line 1464 of yacc.c */
4834 #line 1461 "glsl_parser.yy"
4837 ast_fully_specified_type
*type
= new(ctx
) ast_fully_specified_type();
4838 type
->set_location(yylloc
);
4840 type
->specifier
= (yyvsp
[(1) - (3)].type_specifier
);
4841 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list(type
);
4842 (yyval
.declarator_list
)->set_location(yylloc
);
4844 (yyval
.declarator_list
)->declarations
.push_degenerate_list_at_head(& (yyvsp
[(2) - (3)].declaration
)->link
);
4850 /* Line 1464 of yacc.c */
4851 #line 1476 "glsl_parser.yy"
4853 (yyval
.declaration
) = (yyvsp
[(1) - (1)].declaration
);
4854 (yyvsp
[(1) - (1)].declaration
)->link
.self_link();
4860 /* Line 1464 of yacc.c */
4861 #line 1481 "glsl_parser.yy"
4863 (yyval
.declaration
) = (yyvsp
[(1) - (3)].declaration
);
4864 (yyval
.declaration
)->link
.insert_before(& (yyvsp
[(3) - (3)].declaration
)->link
);
4870 /* Line 1464 of yacc.c */
4871 #line 1489 "glsl_parser.yy"
4874 (yyval
.declaration
) = new(ctx
) ast_declaration((yyvsp
[(1) - (1)].identifier
), false, NULL
, NULL
);
4875 (yyval
.declaration
)->set_location(yylloc
);
4876 state
->symbols
->add_variable(new(state
) ir_variable(NULL
, (yyvsp
[(1) - (1)].identifier
), ir_var_auto
));
4882 /* Line 1464 of yacc.c */
4883 #line 1496 "glsl_parser.yy"
4886 (yyval
.declaration
) = new(ctx
) ast_declaration((yyvsp
[(1) - (4)].identifier
), true, (yyvsp
[(3) - (4)].expression
), NULL
);
4887 (yyval
.declaration
)->set_location(yylloc
);
4893 /* Line 1464 of yacc.c */
4894 #line 1514 "glsl_parser.yy"
4895 { (yyval
.node
) = (ast_node
*) (yyvsp
[(1) - (1)].compound_statement
); ;}
4900 /* Line 1464 of yacc.c */
4901 #line 1522 "glsl_parser.yy"
4902 { (yyval
.node
) = NULL
; ;}
4907 /* Line 1464 of yacc.c */
4908 #line 1523 "glsl_parser.yy"
4909 { (yyval
.node
) = NULL
; ;}
4914 /* Line 1464 of yacc.c */
4915 #line 1530 "glsl_parser.yy"
4918 (yyval
.compound_statement
) = new(ctx
) ast_compound_statement(true, NULL
);
4919 (yyval
.compound_statement
)->set_location(yylloc
);
4925 /* Line 1464 of yacc.c */
4926 #line 1536 "glsl_parser.yy"
4928 state
->symbols
->push_scope();
4934 /* Line 1464 of yacc.c */
4935 #line 1540 "glsl_parser.yy"
4938 (yyval
.compound_statement
) = new(ctx
) ast_compound_statement(true, (yyvsp
[(3) - (4)].node
));
4939 (yyval
.compound_statement
)->set_location(yylloc
);
4940 state
->symbols
->pop_scope();
4946 /* Line 1464 of yacc.c */
4947 #line 1549 "glsl_parser.yy"
4948 { (yyval
.node
) = (ast_node
*) (yyvsp
[(1) - (1)].compound_statement
); ;}
4953 /* Line 1464 of yacc.c */
4954 #line 1555 "glsl_parser.yy"
4957 (yyval
.compound_statement
) = new(ctx
) ast_compound_statement(false, NULL
);
4958 (yyval
.compound_statement
)->set_location(yylloc
);
4964 /* Line 1464 of yacc.c */
4965 #line 1561 "glsl_parser.yy"
4968 (yyval
.compound_statement
) = new(ctx
) ast_compound_statement(false, (yyvsp
[(2) - (3)].node
));
4969 (yyval
.compound_statement
)->set_location(yylloc
);
4975 /* Line 1464 of yacc.c */
4976 #line 1570 "glsl_parser.yy"
4978 if ((yyvsp
[(1) - (1)].node
) == NULL
) {
4979 _mesa_glsl_error(& (yylsp
[(1) - (1)]), state
, "<nil> statement\n");
4980 assert((yyvsp
[(1) - (1)].node
) != NULL
);
4983 (yyval
.node
) = (yyvsp
[(1) - (1)].node
);
4984 (yyval
.node
)->link
.self_link();
4990 /* Line 1464 of yacc.c */
4991 #line 1580 "glsl_parser.yy"
4993 if ((yyvsp
[(2) - (2)].node
) == NULL
) {
4994 _mesa_glsl_error(& (yylsp
[(2) - (2)]), state
, "<nil> statement\n");
4995 assert((yyvsp
[(2) - (2)].node
) != NULL
);
4997 (yyval
.node
) = (yyvsp
[(1) - (2)].node
);
4998 (yyval
.node
)->link
.insert_before(& (yyvsp
[(2) - (2)].node
)->link
);
5004 /* Line 1464 of yacc.c */
5005 #line 1592 "glsl_parser.yy"
5008 (yyval
.node
) = new(ctx
) ast_expression_statement(NULL
);
5009 (yyval
.node
)->set_location(yylloc
);
5015 /* Line 1464 of yacc.c */
5016 #line 1598 "glsl_parser.yy"
5019 (yyval
.node
) = new(ctx
) ast_expression_statement((yyvsp
[(1) - (2)].expression
));
5020 (yyval
.node
)->set_location(yylloc
);
5026 /* Line 1464 of yacc.c */
5027 #line 1607 "glsl_parser.yy"
5029 (yyval
.node
) = new(state
) ast_selection_statement((yyvsp
[(3) - (5)].expression
), (yyvsp
[(5) - (5)].selection_rest_statement
).then_statement
,
5030 (yyvsp
[(5) - (5)].selection_rest_statement
).else_statement
);
5031 (yyval
.node
)->set_location(yylloc
);
5037 /* Line 1464 of yacc.c */
5038 #line 1616 "glsl_parser.yy"
5040 (yyval
.selection_rest_statement
).then_statement
= (yyvsp
[(1) - (3)].node
);
5041 (yyval
.selection_rest_statement
).else_statement
= (yyvsp
[(3) - (3)].node
);
5047 /* Line 1464 of yacc.c */
5048 #line 1621 "glsl_parser.yy"
5050 (yyval
.selection_rest_statement
).then_statement
= (yyvsp
[(1) - (1)].node
);
5051 (yyval
.selection_rest_statement
).else_statement
= NULL
;
5057 /* Line 1464 of yacc.c */
5058 #line 1629 "glsl_parser.yy"
5060 (yyval
.node
) = (ast_node
*) (yyvsp
[(1) - (1)].expression
);
5066 /* Line 1464 of yacc.c */
5067 #line 1633 "glsl_parser.yy"
5070 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(2) - (4)].identifier
), false, NULL
, (yyvsp
[(4) - (4)].expression
));
5071 ast_declarator_list
*declarator
= new(ctx
) ast_declarator_list((yyvsp
[(1) - (4)].fully_specified_type
));
5072 decl
->set_location(yylloc
);
5073 declarator
->set_location(yylloc
);
5075 declarator
->declarations
.push_tail(&decl
->link
);
5076 (yyval
.node
) = declarator
;
5082 /* Line 1464 of yacc.c */
5083 #line 1656 "glsl_parser.yy"
5086 (yyval
.node
) = new(ctx
) ast_iteration_statement(ast_iteration_statement::ast_while
,
5087 NULL
, (yyvsp
[(3) - (5)].node
), NULL
, (yyvsp
[(5) - (5)].node
));
5088 (yyval
.node
)->set_location(yylloc
);
5094 /* Line 1464 of yacc.c */
5095 #line 1663 "glsl_parser.yy"
5098 (yyval
.node
) = new(ctx
) ast_iteration_statement(ast_iteration_statement::ast_do_while
,
5099 NULL
, (yyvsp
[(5) - (7)].expression
), NULL
, (yyvsp
[(2) - (7)].node
));
5100 (yyval
.node
)->set_location(yylloc
);
5106 /* Line 1464 of yacc.c */
5107 #line 1670 "glsl_parser.yy"
5110 (yyval
.node
) = new(ctx
) ast_iteration_statement(ast_iteration_statement::ast_for
,
5111 (yyvsp
[(3) - (6)].node
), (yyvsp
[(4) - (6)].for_rest_statement
).cond
, (yyvsp
[(4) - (6)].for_rest_statement
).rest
, (yyvsp
[(6) - (6)].node
));
5112 (yyval
.node
)->set_location(yylloc
);
5118 /* Line 1464 of yacc.c */
5119 #line 1686 "glsl_parser.yy"
5121 (yyval
.node
) = NULL
;
5127 /* Line 1464 of yacc.c */
5128 #line 1693 "glsl_parser.yy"
5130 (yyval
.for_rest_statement
).cond
= (yyvsp
[(1) - (2)].node
);
5131 (yyval
.for_rest_statement
).rest
= NULL
;
5137 /* Line 1464 of yacc.c */
5138 #line 1698 "glsl_parser.yy"
5140 (yyval
.for_rest_statement
).cond
= (yyvsp
[(1) - (3)].node
);
5141 (yyval
.for_rest_statement
).rest
= (yyvsp
[(3) - (3)].expression
);
5147 /* Line 1464 of yacc.c */
5148 #line 1707 "glsl_parser.yy"
5151 (yyval
.node
) = new(ctx
) ast_jump_statement(ast_jump_statement::ast_continue
, NULL
);
5152 (yyval
.node
)->set_location(yylloc
);
5158 /* Line 1464 of yacc.c */
5159 #line 1713 "glsl_parser.yy"
5162 (yyval
.node
) = new(ctx
) ast_jump_statement(ast_jump_statement::ast_break
, NULL
);
5163 (yyval
.node
)->set_location(yylloc
);
5169 /* Line 1464 of yacc.c */
5170 #line 1719 "glsl_parser.yy"
5173 (yyval
.node
) = new(ctx
) ast_jump_statement(ast_jump_statement::ast_return
, NULL
);
5174 (yyval
.node
)->set_location(yylloc
);
5180 /* Line 1464 of yacc.c */
5181 #line 1725 "glsl_parser.yy"
5184 (yyval
.node
) = new(ctx
) ast_jump_statement(ast_jump_statement::ast_return
, (yyvsp
[(2) - (3)].expression
));
5185 (yyval
.node
)->set_location(yylloc
);
5191 /* Line 1464 of yacc.c */
5192 #line 1731 "glsl_parser.yy"
5195 (yyval
.node
) = new(ctx
) ast_jump_statement(ast_jump_statement::ast_discard
, NULL
);
5196 (yyval
.node
)->set_location(yylloc
);
5202 /* Line 1464 of yacc.c */
5203 #line 1739 "glsl_parser.yy"
5204 { (yyval
.node
) = (yyvsp
[(1) - (1)].function_definition
); ;}
5209 /* Line 1464 of yacc.c */
5210 #line 1740 "glsl_parser.yy"
5211 { (yyval
.node
) = (yyvsp
[(1) - (1)].node
); ;}
5216 /* Line 1464 of yacc.c */
5217 #line 1741 "glsl_parser.yy"
5218 { (yyval
.node
) = NULL
; ;}
5223 /* Line 1464 of yacc.c */
5224 #line 1746 "glsl_parser.yy"
5227 (yyval
.function_definition
) = new(ctx
) ast_function_definition();
5228 (yyval
.function_definition
)->set_location(yylloc
);
5229 (yyval
.function_definition
)->prototype
= (yyvsp
[(1) - (2)].function
);
5230 (yyval
.function_definition
)->body
= (yyvsp
[(2) - (2)].compound_statement
);
5232 state
->symbols
->pop_scope();
5238 /* Line 1464 of yacc.c */
5239 #line 5240 "glsl_parser.cpp"
5242 YY_SYMBOL_PRINT ("-> $$ =", yyr1
[yyn
], &yyval
, &yyloc
);
5246 YY_STACK_PRINT (yyss
, yyssp
);
5251 /* Now `shift' the result of the reduction. Determine what state
5252 that goes to, based on the state we popped back to and the rule
5253 number reduced by. */
5257 yystate
= yypgoto
[yyn
- YYNTOKENS
] + *yyssp
;
5258 if (0 <= yystate
&& yystate
<= YYLAST
&& yycheck
[yystate
] == *yyssp
)
5259 yystate
= yytable
[yystate
];
5261 yystate
= yydefgoto
[yyn
- YYNTOKENS
];
5266 /*------------------------------------.
5267 | yyerrlab -- here on detecting error |
5268 `------------------------------------*/
5270 /* If not already recovering from an error, report this error. */
5274 #if ! YYERROR_VERBOSE
5275 yyerror (&yylloc
, state
, YY_("syntax error"));
5278 YYSIZE_T yysize
= yysyntax_error (0, yystate
, yychar
);
5279 if (yymsg_alloc
< yysize
&& yymsg_alloc
< YYSTACK_ALLOC_MAXIMUM
)
5281 YYSIZE_T yyalloc
= 2 * yysize
;
5282 if (! (yysize
<= yyalloc
&& yyalloc
<= YYSTACK_ALLOC_MAXIMUM
))
5283 yyalloc
= YYSTACK_ALLOC_MAXIMUM
;
5284 if (yymsg
!= yymsgbuf
)
5285 YYSTACK_FREE (yymsg
);
5286 yymsg
= (char *) YYSTACK_ALLOC (yyalloc
);
5288 yymsg_alloc
= yyalloc
;
5292 yymsg_alloc
= sizeof yymsgbuf
;
5296 if (0 < yysize
&& yysize
<= yymsg_alloc
)
5298 (void) yysyntax_error (yymsg
, yystate
, yychar
);
5299 yyerror (&yylloc
, state
, yymsg
);
5303 yyerror (&yylloc
, state
, YY_("syntax error"));
5305 goto yyexhaustedlab
;
5311 yyerror_range
[1] = yylloc
;
5313 if (yyerrstatus
== 3)
5315 /* If just tried and failed to reuse lookahead token after an
5316 error, discard it. */
5318 if (yychar
<= YYEOF
)
5320 /* Return failure if at end of input. */
5321 if (yychar
== YYEOF
)
5326 yydestruct ("Error: discarding",
5327 yytoken
, &yylval
, &yylloc
, state
);
5332 /* Else will try to reuse lookahead token after shifting the error
5337 /*---------------------------------------------------.
5338 | yyerrorlab -- error raised explicitly by YYERROR. |
5339 `---------------------------------------------------*/
5342 /* Pacify compilers like GCC when the user code never invokes
5343 YYERROR and the label yyerrorlab therefore never appears in user
5345 if (/*CONSTCOND*/ 0)
5348 yyerror_range
[1] = yylsp
[1-yylen
];
5349 /* Do not reclaim the symbols of the rule which action triggered
5353 YY_STACK_PRINT (yyss
, yyssp
);
5358 /*-------------------------------------------------------------.
5359 | yyerrlab1 -- common code for both syntax error and YYERROR. |
5360 `-------------------------------------------------------------*/
5362 yyerrstatus
= 3; /* Each real token shifted decrements this. */
5366 yyn
= yypact
[yystate
];
5367 if (yyn
!= YYPACT_NINF
)
5370 if (0 <= yyn
&& yyn
<= YYLAST
&& yycheck
[yyn
] == YYTERROR
)
5378 /* Pop the current state because it cannot handle the error token. */
5382 yyerror_range
[1] = *yylsp
;
5383 yydestruct ("Error: popping",
5384 yystos
[yystate
], yyvsp
, yylsp
, state
);
5387 YY_STACK_PRINT (yyss
, yyssp
);
5392 yyerror_range
[2] = yylloc
;
5393 /* Using YYLLOC is tempting, but would change the location of
5394 the lookahead. YYLOC is available though. */
5395 YYLLOC_DEFAULT (yyloc
, yyerror_range
, 2);
5398 /* Shift the error token. */
5399 YY_SYMBOL_PRINT ("Shifting", yystos
[yyn
], yyvsp
, yylsp
);
5405 /*-------------------------------------.
5406 | yyacceptlab -- YYACCEPT comes here. |
5407 `-------------------------------------*/
5412 /*-----------------------------------.
5413 | yyabortlab -- YYABORT comes here. |
5414 `-----------------------------------*/
5419 #if !defined(yyoverflow) || YYERROR_VERBOSE
5420 /*-------------------------------------------------.
5421 | yyexhaustedlab -- memory exhaustion comes here. |
5422 `-------------------------------------------------*/
5424 yyerror (&yylloc
, state
, YY_("memory exhausted"));
5430 if (yychar
!= YYEMPTY
)
5431 yydestruct ("Cleanup: discarding lookahead",
5432 yytoken
, &yylval
, &yylloc
, state
);
5433 /* Do not reclaim the symbols of the rule which action triggered
5434 this YYABORT or YYACCEPT. */
5436 YY_STACK_PRINT (yyss
, yyssp
);
5437 while (yyssp
!= yyss
)
5439 yydestruct ("Cleanup: popping",
5440 yystos
[*yyssp
], yyvsp
, yylsp
, state
);
5445 YYSTACK_FREE (yyss
);
5448 if (yymsg
!= yymsgbuf
)
5449 YYSTACK_FREE (yymsg
);
5451 /* Make sure YYID is used. */
5452 return YYID (yyresult
);