1 /* A Bison parser, made by GNU Bison 2.4.3. */
3 /* Skeleton implementation for Bison's Yacc-like parsers in C
5 Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
6 2009, 2010 Free Software Foundation, Inc.
8 This program is free software: you can redistribute it and/or modify
9 it under the terms of the GNU General Public License as published by
10 the Free Software Foundation, either version 3 of the License, or
11 (at your option) any later version.
13 This program is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details.
18 You should have received a copy of the GNU General Public License
19 along with this program. If not, see <http://www.gnu.org/licenses/>. */
21 /* As a special exception, you may create a larger work that contains
22 part or all of the Bison parser skeleton and distribute that work
23 under terms of your choice, so long as that work isn't itself a
24 parser generator using the skeleton or a modified version thereof
25 as a parser skeleton. Alternatively, if you modify or redistribute
26 the parser skeleton itself, you may (at your option) remove this
27 special exception, which will cause the skeleton and the resulting
28 Bison output files to be licensed under the GNU General Public
29 License without this special exception.
31 This special exception was added by the Free Software Foundation in
32 version 2.2 of Bison. */
34 /* C LALR(1) parser skeleton written by Richard Stallman, by
35 simplifying the original so-called "semantic" parser. */
37 /* All symbols defined below should begin with yy or YY, to avoid
38 infringing on user name space. This should be done even for local
39 variables, as they might otherwise be expanded by user macros.
40 There are some unavoidable exceptions within include files to
41 define necessary library symbols; they are noted "INFRINGES ON
42 USER NAME SPACE" below. */
44 /* Identify Bison output. */
48 #define YYBISON_VERSION "2.4.3"
51 #define YYSKELETON_NAME "yacc.c"
62 /* Using locations. */
63 #define YYLSP_NEEDED 1
65 /* Substitute the variable and function names. */
66 #define yyparse _mesa_glsl_parse
67 #define yylex _mesa_glsl_lex
68 #define yyerror _mesa_glsl_error
69 #define yylval _mesa_glsl_lval
70 #define yychar _mesa_glsl_char
71 #define yydebug _mesa_glsl_debug
72 #define yynerrs _mesa_glsl_nerrs
73 #define yylloc _mesa_glsl_lloc
75 /* Copy the first part of user declarations. */
77 /* Line 189 of yacc.c */
78 #line 1 "glsl_parser.ypp"
81 * Copyright © 2008, 2009 Intel Corporation
83 * Permission is hereby granted, free of charge, to any person obtaining a
84 * copy of this software and associated documentation files (the "Software"),
85 * to deal in the Software without restriction, including without limitation
86 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
87 * and/or sell copies of the Software, and to permit persons to whom the
88 * Software is furnished to do so, subject to the following conditions:
90 * The above copyright notice and this permission notice (including the next
91 * paragraph) shall be included in all copies or substantial portions of the
94 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
95 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
96 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
97 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
98 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
99 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
100 * DEALINGS IN THE SOFTWARE.
108 #include "glsl_parser_extras.h"
109 #include "glsl_types.h"
111 #define YYLEX_PARAM state->scanner
115 /* Line 189 of yacc.c */
116 #line 117 "glsl_parser.cpp"
118 /* Enabling traces. */
123 /* Enabling verbose error messages. */
124 #ifdef YYERROR_VERBOSE
125 # undef YYERROR_VERBOSE
126 # define YYERROR_VERBOSE 1
128 # define YYERROR_VERBOSE 1
131 /* Enabling the token table. */
132 #ifndef YYTOKEN_TABLE
133 # define YYTOKEN_TABLE 0
140 /* Put the tokens into the symbol table, so that GDB and other debuggers
194 SAMPLER1DSHADOW
= 309,
195 SAMPLER2DSHADOW
= 310,
196 SAMPLERCUBESHADOW
= 311,
197 SAMPLER1DARRAY
= 312,
198 SAMPLER2DARRAY
= 313,
199 SAMPLER1DARRAYSHADOW
= 314,
200 SAMPLER2DARRAYSHADOW
= 315,
205 ISAMPLER1DARRAY
= 320,
206 ISAMPLER2DARRAY
= 321,
211 USAMPLER1DARRAY
= 326,
212 USAMPLER2DARRAY
= 327,
221 FIELD_SELECTION
= 336,
256 PRAGMA_DEBUG_ON
= 371,
257 PRAGMA_DEBUG_OFF
= 372,
258 PRAGMA_OPTIMIZE_ON
= 373,
259 PRAGMA_OPTIMIZE_OFF
= 374,
296 SAMPLER2DRECTSHADOW
= 411,
336 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
337 typedef union YYSTYPE
340 /* Line 214 of yacc.c */
341 #line 52 "glsl_parser.ypp"
348 struct ast_type_qualifier q
;
353 ast_type_specifier
*type_specifier
;
354 ast_fully_specified_type
*fully_specified_type
;
355 ast_function
*function
;
356 ast_parameter_declarator
*parameter_declarator
;
357 ast_function_definition
*function_definition
;
358 ast_compound_statement
*compound_statement
;
359 ast_expression
*expression
;
360 ast_declarator_list
*declarator_list
;
361 ast_struct_specifier
*struct_specifier
;
362 ast_declaration
*declaration
;
366 ast_expression
*rest
;
367 } for_rest_statement
;
370 ast_node
*then_statement
;
371 ast_node
*else_statement
;
372 } selection_rest_statement
;
376 /* Line 214 of yacc.c */
377 #line 378 "glsl_parser.cpp"
379 # define YYSTYPE_IS_TRIVIAL 1
380 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
381 # define YYSTYPE_IS_DECLARED 1
384 #if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED
385 typedef struct YYLTYPE
392 # define yyltype YYLTYPE /* obsolescent; will be withdrawn */
393 # define YYLTYPE_IS_DECLARED 1
394 # define YYLTYPE_IS_TRIVIAL 1
398 /* Copy the second part of user declarations. */
401 /* Line 264 of yacc.c */
402 #line 403 "glsl_parser.cpp"
409 typedef YYTYPE_UINT8 yytype_uint8
;
411 typedef unsigned char yytype_uint8
;
415 typedef YYTYPE_INT8 yytype_int8
;
416 #elif (defined __STDC__ || defined __C99__FUNC__ \
417 || defined __cplusplus || defined _MSC_VER)
418 typedef signed char yytype_int8
;
420 typedef short int yytype_int8
;
424 typedef YYTYPE_UINT16 yytype_uint16
;
426 typedef unsigned short int yytype_uint16
;
430 typedef YYTYPE_INT16 yytype_int16
;
432 typedef short int yytype_int16
;
436 # ifdef __SIZE_TYPE__
437 # define YYSIZE_T __SIZE_TYPE__
438 # elif defined size_t
439 # define YYSIZE_T size_t
440 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
441 || defined __cplusplus || defined _MSC_VER)
442 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
443 # define YYSIZE_T size_t
445 # define YYSIZE_T unsigned int
449 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
452 # if defined YYENABLE_NLS && YYENABLE_NLS
454 # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
455 # define YY_(msgid) dgettext ("bison-runtime", msgid)
459 # define YY_(msgid) msgid
463 /* Suppress unused-variable warnings by "using" E. */
464 #if ! defined lint || defined __GNUC__
465 # define YYUSE(e) ((void) (e))
467 # define YYUSE(e) /* empty */
470 /* Identity function, used to suppress warnings about constant conditions. */
474 #if (defined __STDC__ || defined __C99__FUNC__ \
475 || defined __cplusplus || defined _MSC_VER)
488 #if ! defined yyoverflow || YYERROR_VERBOSE
490 /* The parser invokes alloca or malloc; define the necessary symbols. */
492 # ifdef YYSTACK_USE_ALLOCA
493 # if YYSTACK_USE_ALLOCA
495 # define YYSTACK_ALLOC __builtin_alloca
496 # elif defined __BUILTIN_VA_ARG_INCR
497 # include <alloca.h> /* INFRINGES ON USER NAME SPACE */
499 # define YYSTACK_ALLOC __alloca
500 # elif defined _MSC_VER
501 # include <malloc.h> /* INFRINGES ON USER NAME SPACE */
502 # define alloca _alloca
504 # define YYSTACK_ALLOC alloca
505 # if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
506 || defined __cplusplus || defined _MSC_VER)
507 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
516 # ifdef YYSTACK_ALLOC
517 /* Pacify GCC's `empty if-body' warning. */
518 # define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
519 # ifndef YYSTACK_ALLOC_MAXIMUM
520 /* The OS might guarantee only one guard page at the bottom of the stack,
521 and a page size can be as small as 4096 bytes. So we cannot safely
522 invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
523 to allow for a few compiler-allocated temporary stack slots. */
524 # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
527 # define YYSTACK_ALLOC YYMALLOC
528 # define YYSTACK_FREE YYFREE
529 # ifndef YYSTACK_ALLOC_MAXIMUM
530 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
532 # if (defined __cplusplus && ! defined _STDLIB_H \
533 && ! ((defined YYMALLOC || defined malloc) \
534 && (defined YYFREE || defined free)))
535 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
541 # define YYMALLOC malloc
542 # if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
543 || defined __cplusplus || defined _MSC_VER)
544 void *malloc (YYSIZE_T
); /* INFRINGES ON USER NAME SPACE */
549 # if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
550 || defined __cplusplus || defined _MSC_VER)
551 void free (void *); /* INFRINGES ON USER NAME SPACE */
555 #endif /* ! defined yyoverflow || YYERROR_VERBOSE */
558 #if (! defined yyoverflow \
559 && (! defined __cplusplus \
560 || (defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL \
561 && defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
563 /* A type that is properly aligned for any stack member. */
566 yytype_int16 yyss_alloc
;
571 /* The size of the maximum gap between one aligned stack and the next. */
572 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
574 /* The size of an array large to enough to hold all stacks, each with
576 # define YYSTACK_BYTES(N) \
577 ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \
578 + 2 * YYSTACK_GAP_MAXIMUM)
580 /* Copy COUNT objects from FROM to TO. The source and destination do
583 # if defined __GNUC__ && 1 < __GNUC__
584 # define YYCOPY(To, From, Count) \
585 __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
587 # define YYCOPY(To, From, Count) \
591 for (yyi = 0; yyi < (Count); yyi++) \
592 (To)[yyi] = (From)[yyi]; \
598 /* Relocate STACK from its old location to the new one. The
599 local variables YYSIZE and YYSTACKSIZE give the old and new number of
600 elements in the stack, and YYPTR gives the new location of the
601 stack. Advance YYPTR to a properly aligned location for the next
603 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \
606 YYSIZE_T yynewbytes; \
607 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
608 Stack = &yyptr->Stack_alloc; \
609 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
610 yyptr += yynewbytes / sizeof (*yyptr); \
616 /* YYFINAL -- State number of the termination state. */
618 /* YYLAST -- Last index in YYTABLE. */
621 /* YYNTOKENS -- Number of terminals. */
622 #define YYNTOKENS 215
623 /* YYNNTS -- Number of nonterminals. */
625 /* YYNRULES -- Number of rules. */
627 /* YYNRULES -- Number of states. */
628 #define YYNSTATES 409
630 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
632 #define YYMAXUTOK 445
634 #define YYTRANSLATE(YYX) \
635 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
637 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
638 static const yytype_uint8 yytranslate
[] =
640 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
641 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
642 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
643 2, 2, 2, 199, 2, 2, 2, 203, 206, 2,
644 191, 192, 201, 197, 196, 198, 195, 202, 2, 2,
645 2, 2, 2, 2, 2, 2, 2, 2, 210, 212,
646 204, 211, 205, 209, 2, 2, 2, 2, 2, 2,
647 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
648 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
649 2, 193, 2, 194, 207, 2, 2, 2, 2, 2,
650 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
651 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
652 2, 2, 2, 213, 208, 214, 200, 2, 2, 2,
653 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
654 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
655 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
656 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
657 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
658 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
659 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
660 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
661 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
662 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
663 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
664 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
665 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
666 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
667 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
668 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
669 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
670 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
671 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
672 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
673 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
674 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
675 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
676 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
677 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
678 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
679 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
680 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
681 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
682 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
683 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
684 185, 186, 187, 188, 189, 190
688 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
690 static const yytype_uint16 yyprhs
[] =
692 0, 0, 3, 4, 9, 10, 14, 17, 20, 23,
693 26, 27, 30, 36, 38, 41, 43, 45, 47, 49,
694 51, 53, 57, 59, 64, 66, 70, 73, 76, 78,
695 80, 82, 86, 89, 92, 95, 97, 100, 104, 107,
696 109, 111, 113, 115, 118, 121, 124, 126, 128, 130,
697 132, 134, 138, 142, 146, 148, 152, 156, 158, 162,
698 166, 168, 172, 176, 180, 184, 186, 190, 194, 196,
699 200, 202, 206, 208, 212, 214, 218, 220, 224, 226,
700 230, 232, 238, 240, 244, 246, 248, 250, 252, 254,
701 256, 258, 260, 262, 264, 266, 268, 272, 274, 277,
702 280, 285, 288, 290, 292, 295, 299, 303, 306, 312,
703 316, 319, 323, 326, 327, 329, 331, 333, 335, 337,
704 341, 347, 354, 362, 371, 377, 379, 382, 387, 393,
705 400, 408, 413, 416, 418, 421, 422, 424, 429, 431,
706 435, 437, 439, 441, 443, 445, 447, 450, 453, 455,
707 457, 460, 463, 466, 468, 471, 474, 476, 478, 481,
708 483, 487, 492, 494, 496, 498, 500, 502, 504, 506,
709 508, 510, 512, 514, 516, 518, 520, 522, 524, 526,
710 528, 530, 532, 534, 536, 538, 540, 542, 544, 546,
711 548, 550, 552, 554, 556, 558, 560, 562, 564, 566,
712 568, 570, 572, 574, 576, 578, 580, 582, 584, 586,
713 588, 590, 592, 594, 596, 598, 600, 602, 604, 606,
714 612, 617, 619, 622, 626, 628, 632, 634, 639, 641,
715 643, 645, 647, 649, 651, 653, 655, 657, 659, 661,
716 664, 668, 670, 672, 675, 679, 681, 684, 686, 689,
717 695, 699, 701, 703, 708, 714, 718, 721, 727, 735,
718 742, 744, 746, 748, 749, 752, 756, 759, 762, 765,
719 769, 772, 774, 776, 778
722 /* YYRHS -- A `-1'-separated list of the rules' RHS. */
723 static const yytype_int16 yyrhs
[] =
725 216, 0, -1, -1, 218, 220, 217, 222, -1, -1,
726 109, 78, 113, -1, 116, 113, -1, 117, 113, -1,
727 118, 113, -1, 119, 113, -1, -1, 220, 221, -1,
728 110, 76, 112, 76, 113, -1, 301, -1, 222, 301,
729 -1, 76, -1, 223, -1, 78, -1, 79, -1, 77,
730 -1, 80, -1, 191, 250, 192, -1, 224, -1, 225,
731 193, 226, 194, -1, 227, -1, 225, 195, 76, -1,
732 225, 84, -1, 225, 85, -1, 250, -1, 228, -1,
733 229, -1, 225, 195, 229, -1, 231, 192, -1, 230,
734 192, -1, 232, 74, -1, 232, -1, 232, 248, -1,
735 231, 196, 248, -1, 233, 191, -1, 272, -1, 76,
736 -1, 81, -1, 225, -1, 84, 234, -1, 85, 234,
737 -1, 235, 234, -1, 197, -1, 198, -1, 199, -1,
738 200, -1, 234, -1, 236, 201, 234, -1, 236, 202,
739 234, -1, 236, 203, 234, -1, 236, -1, 237, 197,
740 236, -1, 237, 198, 236, -1, 237, -1, 238, 82,
741 237, -1, 238, 83, 237, -1, 238, -1, 239, 204,
742 238, -1, 239, 205, 238, -1, 239, 86, 238, -1,
743 239, 87, 238, -1, 239, -1, 240, 88, 239, -1,
744 240, 89, 239, -1, 240, -1, 241, 206, 240, -1,
745 241, -1, 242, 207, 241, -1, 242, -1, 243, 208,
746 242, -1, 243, -1, 244, 90, 243, -1, 244, -1,
747 245, 92, 244, -1, 245, -1, 246, 91, 245, -1,
748 246, -1, 246, 209, 250, 210, 248, -1, 247, -1,
749 234, 249, 248, -1, 211, -1, 93, -1, 94, -1,
750 96, -1, 95, -1, 102, -1, 97, -1, 98, -1,
751 99, -1, 100, -1, 101, -1, 248, -1, 250, 196,
752 248, -1, 247, -1, 253, 212, -1, 261, 212, -1,
753 108, 276, 273, 212, -1, 254, 192, -1, 256, -1,
754 255, -1, 256, 258, -1, 255, 196, 258, -1, 263,
755 76, 191, -1, 272, 76, -1, 272, 76, 193, 251,
756 194, -1, 269, 259, 257, -1, 259, 257, -1, 269,
757 259, 260, -1, 259, 260, -1, -1, 33, -1, 34,
758 -1, 35, -1, 272, -1, 262, -1, 261, 196, 76,
759 -1, 261, 196, 76, 193, 194, -1, 261, 196, 76,
760 193, 251, 194, -1, 261, 196, 76, 193, 194, 211,
761 282, -1, 261, 196, 76, 193, 251, 194, 211, 282,
762 -1, 261, 196, 76, 211, 282, -1, 263, -1, 263,
763 76, -1, 263, 76, 193, 194, -1, 263, 76, 193,
764 251, 194, -1, 263, 76, 193, 194, 211, 282, -1,
765 263, 76, 193, 251, 194, 211, 282, -1, 263, 76,
766 211, 282, -1, 103, 76, -1, 272, -1, 270, 272,
767 -1, -1, 265, -1, 120, 191, 266, 192, -1, 267,
768 -1, 266, 196, 267, -1, 76, -1, 40, -1, 39,
769 -1, 38, -1, 4, -1, 271, -1, 268, 270, -1,
770 103, 270, -1, 4, -1, 3, -1, 264, 37, -1,
771 32, 37, -1, 264, 33, -1, 34, -1, 32, 33,
772 -1, 32, 34, -1, 36, -1, 273, -1, 276, 273,
773 -1, 274, -1, 274, 193, 194, -1, 274, 193, 251,
774 194, -1, 275, -1, 277, -1, 76, -1, 74, -1,
775 6, -1, 7, -1, 8, -1, 5, -1, 29, -1,
776 30, -1, 31, -1, 20, -1, 21, -1, 22, -1,
777 23, -1, 24, -1, 25, -1, 26, -1, 27, -1,
778 28, -1, 41, -1, 42, -1, 43, -1, 44, -1,
779 45, -1, 46, -1, 47, -1, 48, -1, 49, -1,
780 50, -1, 51, -1, 154, -1, 52, -1, 53, -1,
781 54, -1, 55, -1, 156, -1, 56, -1, 57, -1,
782 58, -1, 59, -1, 60, -1, 61, -1, 62, -1,
783 63, -1, 64, -1, 65, -1, 66, -1, 67, -1,
784 68, -1, 69, -1, 70, -1, 71, -1, 72, -1,
785 106, -1, 105, -1, 104, -1, 73, 76, 213, 278,
786 214, -1, 73, 213, 278, 214, -1, 279, -1, 278,
787 279, -1, 272, 280, 212, -1, 281, -1, 280, 196,
788 281, -1, 76, -1, 76, 193, 251, 194, -1, 248,
789 -1, 252, -1, 286, -1, 285, -1, 283, -1, 290,
790 -1, 291, -1, 294, -1, 295, -1, 296, -1, 300,
791 -1, 213, 214, -1, 213, 289, 214, -1, 288, -1,
792 285, -1, 213, 214, -1, 213, 289, 214, -1, 284,
793 -1, 289, 284, -1, 212, -1, 250, 212, -1, 14,
794 191, 250, 192, 292, -1, 284, 12, 284, -1, 284,
795 -1, 250, -1, 263, 76, 211, 282, -1, 17, 191,
796 250, 192, 286, -1, 18, 250, 210, -1, 19, 210,
797 -1, 75, 191, 293, 192, 287, -1, 11, 284, 75,
798 191, 250, 192, 212, -1, 13, 191, 297, 299, 192,
799 287, -1, 290, -1, 283, -1, 293, -1, -1, 298,
800 212, -1, 298, 212, 250, -1, 10, 212, -1, 9,
801 212, -1, 16, 212, -1, 16, 250, 212, -1, 15,
802 212, -1, 302, -1, 252, -1, 219, -1, 253, 288,
806 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
807 static const yytype_uint16 yyrline
[] =
809 0, 214, 214, 213, 220, 222, 240, 241, 242, 243,
810 246, 248, 252, 261, 269, 280, 284, 291, 298, 305,
811 312, 319, 326, 327, 333, 337, 344, 350, 359, 363,
812 367, 368, 377, 378, 382, 383, 387, 393, 405, 409,
813 415, 422, 433, 434, 440, 446, 456, 457, 458, 459,
814 463, 464, 470, 476, 485, 486, 492, 501, 502, 508,
815 517, 518, 524, 530, 536, 545, 546, 552, 561, 562,
816 571, 572, 581, 582, 591, 592, 601, 602, 611, 612,
817 621, 622, 631, 632, 641, 642, 643, 644, 645, 646,
818 647, 648, 649, 650, 651, 655, 659, 675, 679, 683,
819 687, 701, 705, 706, 710, 715, 723, 734, 744, 759,
820 766, 771, 782, 794, 795, 796, 797, 801, 805, 806,
821 815, 824, 833, 842, 851, 864, 875, 884, 893, 902,
822 911, 920, 929, 943, 950, 961, 962, 966, 973, 974,
823 981, 1015, 1016, 1017, 1021, 1025, 1026, 1030, 1038, 1039,
824 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1050, 1051, 1059,
825 1060, 1066, 1075, 1081, 1087, 1096, 1097, 1098, 1099, 1100,
826 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110,
827 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120,
828 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130,
829 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140,
830 1141, 1142, 1143, 1144, 1145, 1146, 1150, 1161, 1172, 1186,
831 1192, 1201, 1206, 1214, 1229, 1234, 1242, 1248, 1257, 1261,
832 1267, 1268, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1282,
833 1288, 1297, 1298, 1302, 1308, 1317, 1327, 1339, 1345, 1354,
834 1363, 1368, 1376, 1380, 1394, 1398, 1399, 1403, 1410, 1417,
835 1427, 1428, 1432, 1434, 1440, 1445, 1454, 1460, 1466, 1472,
836 1478, 1487, 1488, 1489, 1493
840 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
841 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
842 First, the terminals, then, starting at YYNTOKENS, nonterminals. */
843 static const char *const yytname
[] =
845 "$end", "error", "$undefined", "ATTRIBUTE", "CONST_TOK", "BOOL_TOK",
846 "FLOAT_TOK", "INT_TOK", "UINT_TOK", "BREAK", "CONTINUE", "DO", "ELSE",
847 "FOR", "IF", "DISCARD", "RETURN", "SWITCH", "CASE", "DEFAULT", "BVEC2",
848 "BVEC3", "BVEC4", "IVEC2", "IVEC3", "IVEC4", "UVEC2", "UVEC3", "UVEC4",
849 "VEC2", "VEC3", "VEC4", "CENTROID", "IN_TOK", "OUT_TOK", "INOUT_TOK",
850 "UNIFORM", "VARYING", "NOPERSPECTIVE", "FLAT", "SMOOTH", "MAT2X2",
851 "MAT2X3", "MAT2X4", "MAT3X2", "MAT3X3", "MAT3X4", "MAT4X2", "MAT4X3",
852 "MAT4X4", "SAMPLER1D", "SAMPLER2D", "SAMPLER3D", "SAMPLERCUBE",
853 "SAMPLER1DSHADOW", "SAMPLER2DSHADOW", "SAMPLERCUBESHADOW",
854 "SAMPLER1DARRAY", "SAMPLER2DARRAY", "SAMPLER1DARRAYSHADOW",
855 "SAMPLER2DARRAYSHADOW", "ISAMPLER1D", "ISAMPLER2D", "ISAMPLER3D",
856 "ISAMPLERCUBE", "ISAMPLER1DARRAY", "ISAMPLER2DARRAY", "USAMPLER1D",
857 "USAMPLER2D", "USAMPLER3D", "USAMPLERCUBE", "USAMPLER1DARRAY",
858 "USAMPLER2DARRAY", "STRUCT", "VOID_TOK", "WHILE", "IDENTIFIER",
859 "FLOATCONSTANT", "INTCONSTANT", "UINTCONSTANT", "BOOLCONSTANT",
860 "FIELD_SELECTION", "LEFT_OP", "RIGHT_OP", "INC_OP", "DEC_OP", "LE_OP",
861 "GE_OP", "EQ_OP", "NE_OP", "AND_OP", "OR_OP", "XOR_OP", "MUL_ASSIGN",
862 "DIV_ASSIGN", "ADD_ASSIGN", "MOD_ASSIGN", "LEFT_ASSIGN", "RIGHT_ASSIGN",
863 "AND_ASSIGN", "XOR_ASSIGN", "OR_ASSIGN", "SUB_ASSIGN", "INVARIANT",
864 "LOWP", "MEDIUMP", "HIGHP", "SUPERP", "PRECISION", "VERSION",
865 "EXTENSION", "LINE", "COLON", "EOL", "INTERFACE", "OUTPUT",
866 "PRAGMA_DEBUG_ON", "PRAGMA_DEBUG_OFF", "PRAGMA_OPTIMIZE_ON",
867 "PRAGMA_OPTIMIZE_OFF", "LAYOUT_TOK", "ASM", "CLASS", "UNION", "ENUM",
868 "TYPEDEF", "TEMPLATE", "THIS", "PACKED_TOK", "GOTO", "INLINE_TOK",
869 "NOINLINE", "VOLATILE", "PUBLIC_TOK", "STATIC", "EXTERN", "EXTERNAL",
870 "LONG_TOK", "SHORT_TOK", "DOUBLE_TOK", "HALF", "FIXED_TOK", "UNSIGNED",
871 "INPUT_TOK", "OUPTUT", "HVEC2", "HVEC3", "HVEC4", "DVEC2", "DVEC3",
872 "DVEC4", "FVEC2", "FVEC3", "FVEC4", "SAMPLER2DRECT", "SAMPLER3DRECT",
873 "SAMPLER2DRECTSHADOW", "SIZEOF", "CAST", "NAMESPACE", "USING",
874 "ERROR_TOK", "COMMON", "PARTITION", "ACTIVE", "SAMPLERBUFFER", "FILTER",
875 "IMAGE1D", "IMAGE2D", "IMAGE3D", "IMAGECUBE", "IMAGE1DARRAY",
876 "IMAGE2DARRAY", "IIMAGE1D", "IIMAGE2D", "IIMAGE3D", "IIMAGECUBE",
877 "IIMAGE1DARRAY", "IIMAGE2DARRAY", "UIMAGE1D", "UIMAGE2D", "UIMAGE3D",
878 "UIMAGECUBE", "UIMAGE1DARRAY", "UIMAGE2DARRAY", "IMAGE1DSHADOW",
879 "IMAGE2DSHADOW", "IMAGEBUFFER", "IIMAGEBUFFER", "UIMAGEBUFFER",
880 "ROW_MAJOR", "'('", "')'", "'['", "']'", "'.'", "','", "'+'", "'-'",
881 "'!'", "'~'", "'*'", "'/'", "'%'", "'<'", "'>'", "'&'", "'^'", "'|'",
882 "'?'", "':'", "'='", "';'", "'{'", "'}'", "$accept", "translation_unit",
883 "$@1", "version_statement", "pragma_statement",
884 "extension_statement_list", "extension_statement",
885 "external_declaration_list", "variable_identifier", "primary_expression",
886 "postfix_expression", "integer_expression", "function_call",
887 "function_call_or_method", "function_call_generic",
888 "function_call_header_no_parameters",
889 "function_call_header_with_parameters", "function_call_header",
890 "function_identifier", "unary_expression", "unary_operator",
891 "multiplicative_expression", "additive_expression", "shift_expression",
892 "relational_expression", "equality_expression", "and_expression",
893 "exclusive_or_expression", "inclusive_or_expression",
894 "logical_and_expression", "logical_xor_expression",
895 "logical_or_expression", "conditional_expression",
896 "assignment_expression", "assignment_operator", "expression",
897 "constant_expression", "declaration", "function_prototype",
898 "function_declarator", "function_header_with_parameters",
899 "function_header", "parameter_declarator", "parameter_declaration",
900 "parameter_qualifier", "parameter_type_specifier",
901 "init_declarator_list", "single_declaration", "fully_specified_type",
902 "opt_layout_qualifier", "layout_qualifier", "layout_qualifier_id_list",
903 "layout_qualifier_id", "interpolation_qualifier",
904 "parameter_type_qualifier", "type_qualifier", "storage_qualifier",
905 "type_specifier", "type_specifier_no_prec", "type_specifier_nonarray",
906 "basic_type_specifier_nonarray", "precision_qualifier",
907 "struct_specifier", "struct_declaration_list", "struct_declaration",
908 "struct_declarator_list", "struct_declarator", "initializer",
909 "declaration_statement", "statement", "simple_statement",
910 "compound_statement", "statement_no_new_scope",
911 "compound_statement_no_new_scope", "statement_list",
912 "expression_statement", "selection_statement",
913 "selection_rest_statement", "condition", "switch_statement",
914 "case_label", "iteration_statement", "for_init_statement",
915 "conditionopt", "for_rest_statement", "jump_statement",
916 "external_declaration", "function_definition", 0
921 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
923 static const yytype_uint16 yytoknum
[] =
925 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
926 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
927 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
928 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
929 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
930 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
931 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
932 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
933 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
934 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
935 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
936 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
937 375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
938 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
939 395, 396, 397, 398, 399, 400, 401, 402, 403, 404,
940 405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
941 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
942 425, 426, 427, 428, 429, 430, 431, 432, 433, 434,
943 435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
944 445, 40, 41, 91, 93, 46, 44, 43, 45, 33,
945 126, 42, 47, 37, 60, 62, 38, 94, 124, 63,
950 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
951 static const yytype_uint16 yyr1
[] =
953 0, 215, 217, 216, 218, 218, 219, 219, 219, 219,
954 220, 220, 221, 222, 222, 223, 224, 224, 224, 224,
955 224, 224, 225, 225, 225, 225, 225, 225, 226, 227,
956 228, 228, 229, 229, 230, 230, 231, 231, 232, 233,
957 233, 233, 234, 234, 234, 234, 235, 235, 235, 235,
958 236, 236, 236, 236, 237, 237, 237, 238, 238, 238,
959 239, 239, 239, 239, 239, 240, 240, 240, 241, 241,
960 242, 242, 243, 243, 244, 244, 245, 245, 246, 246,
961 247, 247, 248, 248, 249, 249, 249, 249, 249, 249,
962 249, 249, 249, 249, 249, 250, 250, 251, 252, 252,
963 252, 253, 254, 254, 255, 255, 256, 257, 257, 258,
964 258, 258, 258, 259, 259, 259, 259, 260, 261, 261,
965 261, 261, 261, 261, 261, 262, 262, 262, 262, 262,
966 262, 262, 262, 263, 263, 264, 264, 265, 266, 266,
967 267, 268, 268, 268, 269, 270, 270, 270, 271, 271,
968 271, 271, 271, 271, 271, 271, 271, 272, 272, 273,
969 273, 273, 274, 274, 274, 275, 275, 275, 275, 275,
970 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
971 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
972 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
973 275, 275, 275, 275, 275, 275, 275, 275, 275, 275,
974 275, 275, 275, 275, 275, 275, 276, 276, 276, 277,
975 277, 278, 278, 279, 280, 280, 281, 281, 282, 283,
976 284, 284, 285, 285, 285, 285, 285, 285, 285, 286,
977 286, 287, 287, 288, 288, 289, 289, 290, 290, 291,
978 292, 292, 293, 293, 294, 295, 295, 296, 296, 296,
979 297, 297, 298, 298, 299, 299, 300, 300, 300, 300,
980 300, 301, 301, 301, 302
983 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
984 static const yytype_uint8 yyr2
[] =
986 0, 2, 0, 4, 0, 3, 2, 2, 2, 2,
987 0, 2, 5, 1, 2, 1, 1, 1, 1, 1,
988 1, 3, 1, 4, 1, 3, 2, 2, 1, 1,
989 1, 3, 2, 2, 2, 1, 2, 3, 2, 1,
990 1, 1, 1, 2, 2, 2, 1, 1, 1, 1,
991 1, 3, 3, 3, 1, 3, 3, 1, 3, 3,
992 1, 3, 3, 3, 3, 1, 3, 3, 1, 3,
993 1, 3, 1, 3, 1, 3, 1, 3, 1, 3,
994 1, 5, 1, 3, 1, 1, 1, 1, 1, 1,
995 1, 1, 1, 1, 1, 1, 3, 1, 2, 2,
996 4, 2, 1, 1, 2, 3, 3, 2, 5, 3,
997 2, 3, 2, 0, 1, 1, 1, 1, 1, 3,
998 5, 6, 7, 8, 5, 1, 2, 4, 5, 6,
999 7, 4, 2, 1, 2, 0, 1, 4, 1, 3,
1000 1, 1, 1, 1, 1, 1, 2, 2, 1, 1,
1001 2, 2, 2, 1, 2, 2, 1, 1, 2, 1,
1002 3, 4, 1, 1, 1, 1, 1, 1, 1, 1,
1003 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1004 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1005 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1006 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1007 1, 1, 1, 1, 1, 1, 1, 1, 1, 5,
1008 4, 1, 2, 3, 1, 3, 1, 4, 1, 1,
1009 1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
1010 3, 1, 1, 2, 3, 1, 2, 1, 2, 5,
1011 3, 1, 1, 4, 5, 3, 2, 5, 7, 6,
1012 1, 1, 1, 0, 2, 3, 2, 2, 2, 3,
1016 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
1017 STATE-NUM when YYTABLE doesn't specify something else to do. Zero
1018 means the default is an error. */
1019 static const yytype_uint16 yydefact
[] =
1021 4, 0, 0, 10, 0, 1, 2, 5, 0, 135,
1022 11, 0, 149, 148, 169, 166, 167, 168, 173, 174,
1023 175, 176, 177, 178, 179, 180, 181, 170, 171, 172,
1024 0, 153, 156, 143, 142, 141, 182, 183, 184, 185,
1025 186, 187, 188, 189, 190, 191, 192, 194, 195, 196,
1026 197, 199, 200, 201, 202, 203, 204, 205, 206, 207,
1027 208, 209, 210, 211, 212, 213, 214, 215, 0, 165,
1028 164, 135, 218, 217, 216, 0, 0, 0, 0, 0,
1029 0, 193, 198, 273, 135, 272, 0, 0, 103, 113,
1030 0, 118, 125, 0, 136, 135, 0, 145, 133, 157,
1031 159, 162, 0, 163, 13, 271, 0, 154, 155, 151,
1032 0, 0, 132, 135, 147, 0, 6, 7, 8, 9,
1033 0, 14, 98, 135, 274, 101, 113, 144, 114, 115,
1034 116, 104, 0, 113, 0, 99, 126, 152, 150, 146,
1035 134, 0, 158, 0, 0, 0, 0, 221, 0, 140,
1036 0, 138, 0, 0, 135, 0, 0, 0, 0, 0,
1037 0, 0, 0, 15, 19, 17, 18, 20, 41, 0,
1038 0, 0, 46, 47, 48, 49, 247, 135, 243, 16,
1039 22, 42, 24, 29, 30, 0, 0, 35, 0, 50,
1040 0, 54, 57, 60, 65, 68, 70, 72, 74, 76,
1041 78, 80, 82, 95, 0, 229, 0, 133, 232, 245,
1042 231, 230, 135, 233, 234, 235, 236, 237, 238, 105,
1043 110, 112, 117, 0, 119, 106, 0, 0, 160, 50,
1044 97, 0, 39, 12, 0, 226, 0, 224, 220, 222,
1045 100, 137, 0, 267, 266, 0, 135, 0, 270, 268,
1046 0, 0, 0, 256, 135, 43, 44, 0, 239, 135,
1047 26, 27, 0, 0, 33, 32, 0, 165, 36, 38,
1048 85, 86, 88, 87, 90, 91, 92, 93, 94, 89,
1049 84, 0, 45, 0, 0, 0, 0, 0, 0, 0,
1050 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1051 0, 0, 0, 0, 248, 244, 246, 107, 109, 111,
1052 0, 0, 127, 0, 228, 131, 161, 219, 0, 0,
1053 223, 139, 0, 261, 260, 135, 0, 269, 0, 255,
1054 252, 0, 0, 21, 240, 0, 28, 25, 31, 37,
1055 83, 51, 52, 53, 55, 56, 58, 59, 63, 64,
1056 61, 62, 66, 67, 69, 71, 73, 75, 77, 79,
1057 0, 96, 0, 120, 0, 124, 0, 128, 0, 225,
1058 0, 262, 0, 0, 135, 0, 0, 135, 23, 0,
1059 0, 0, 121, 129, 0, 227, 0, 264, 135, 251,
1060 249, 254, 0, 242, 257, 241, 81, 108, 122, 0,
1061 130, 0, 265, 259, 135, 253, 123, 258, 250
1064 /* YYDEFGOTO[NTERM-NUM]. */
1065 static const yytype_int16 yydefgoto
[] =
1067 -1, 2, 9, 3, 83, 6, 10, 84, 179, 180,
1068 181, 335, 182, 183, 184, 185, 186, 187, 188, 189,
1069 190, 191, 192, 193, 194, 195, 196, 197, 198, 199,
1070 200, 201, 202, 203, 281, 204, 231, 205, 206, 87,
1071 88, 89, 220, 131, 132, 221, 90, 91, 92, 93,
1072 94, 150, 151, 95, 133, 96, 97, 232, 99, 100,
1073 101, 102, 103, 146, 147, 236, 237, 315, 208, 209,
1074 210, 211, 394, 395, 212, 213, 214, 390, 332, 215,
1075 216, 217, 325, 372, 373, 218, 104, 105
1078 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1080 #define YYPACT_NINF -329
1081 static const yytype_int16 yypact
[] =
1083 -58, -22, 72, -329, -28, -329, -15, -329, 22, 3589,
1084 -329, -4, -329, -329, -329, -329, -329, -329, -329, -329,
1085 -329, -329, -329, -329, -329, -329, -329, -329, -329, -329,
1086 44, -329, -329, -329, -329, -329, -329, -329, -329, -329,
1087 -329, -329, -329, -329, -329, -329, -329, -329, -329, -329,
1088 -329, -329, -329, -329, -329, -329, -329, -329, -329, -329,
1089 -329, -329, -329, -329, -329, -329, -329, -329, -72, -329,
1090 -329, 6, -329, -329, -329, 14, -8, 9, 11, 26,
1091 -64, -329, -329, -329, 3470, -329, -159, -23, -12, -2,
1092 -149, -329, 105, 57, -329, 140, 3777, -329, -329, -329,
1093 15, -329, 3849, -329, -329, -329, 131, -329, -329, -329,
1094 -3, 3777, -329, 140, -329, 3849, -329, -329, -329, -329,
1095 133, -329, -329, 383, -329, -329, 32, -329, -329, -329,
1096 -329, -329, 3777, 158, 135, -329, -150, -329, -329, -329,
1097 -329, 2565, -329, 100, 3777, 141, 1954, -329, 4, -329,
1098 -95, -329, 7, 8, 1231, 27, 31, 12, 2186, 37,
1099 3108, 13, 39, -59, -329, -329, -329, -329, -329, 3108,
1100 3108, 3108, -329, -329, -329, -329, -329, 595, -329, -329,
1101 -329, -55, -329, -329, -329, 41, -92, 3289, 40, -75,
1102 3108, -7, -118, 51, -74, 109, 28, 29, 30, 145,
1103 147, -84, -329, -329, -148, -329, 34, 49, -329, -329,
1104 -329, -329, 807, -329, -329, -329, -329, -329, -329, -329,
1105 -329, -329, 166, 3777, -143, -329, 2746, 3108, -329, -329,
1106 -329, 53, -329, -329, 2070, 55, -139, -329, -329, -329,
1107 -329, -329, 133, -329, -329, 174, 1640, 3108, -329, -329,
1108 -138, 3108, -134, -329, 2384, -329, -329, -81, -329, 1019,
1109 -329, -329, 3108, 3705, -329, -329, 3108, 61, -329, -329,
1110 -329, -329, -329, -329, -329, -329, -329, -329, -329, -329,
1111 -329, 3108, -329, 3108, 3108, 3108, 3108, 3108, 3108, 3108,
1112 3108, 3108, 3108, 3108, 3108, 3108, 3108, 3108, 3108, 3108,
1113 3108, 3108, 3108, 3108, -329, -329, -329, 62, -329, -329,
1114 2927, 3108, 43, 63, -329, -329, -329, -329, 3108, 141,
1115 -329, -329, 65, -329, -329, 1838, -80, -329, -79, -329,
1116 66, 182, 69, -329, -329, 70, 66, 74, -329, -329,
1117 -329, -329, -329, -329, -7, -7, -118, -118, 51, 51,
1118 51, 51, -74, -74, 109, 28, 29, 30, 145, 147,
1119 -127, -329, 3108, 52, 75, -329, 3108, 59, 77, -329,
1120 3108, -329, 54, 76, 1231, 60, 64, 1442, -329, 3108,
1121 78, 3108, 67, -329, 3108, -329, -50, 3108, 1442, 262,
1122 -329, -329, 3108, -329, -329, -329, -329, -329, -329, 3108,
1123 -329, 71, 66, -329, 1231, -329, -329, -329, -329
1126 /* YYPGOTO[NTERM-NUM]. */
1127 static const yytype_int16 yypgoto
[] =
1129 -329, -329, -329, -329, -329, -329, -329, -329, -329, -329,
1130 -329, -329, -329, -329, 16, -329, -329, -329, -329, -135,
1131 -329, -87, -83, -104, -93, -20, -16, -21, -13, -11,
1132 -17, -329, -133, -99, -329, -155, -189, 2, 5, -329,
1133 -329, -329, 68, 161, 155, 73, -329, -329, -215, -329,
1134 -329, -329, 48, -329, -329, -43, -329, -9, -31, -329,
1135 -329, 217, -329, 150, -131, -329, -24, -140, 56, -153,
1136 -328, -78, -90, 213, 124, 58, -329, -329, -19, -329,
1137 -329, -329, -329, -329, -329, -329, 219, -329
1140 /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
1141 positive, shift that token. If negative, reduce the rule which
1142 number is the opposite. If zero, do what YYDEFACT says.
1143 If YYTABLE_NINF, syntax error. */
1144 #define YYTABLE_NINF -264
1145 static const yytype_int16 yytable
[] =
1147 98, 245, 127, 250, 110, 252, 229, 301, 230, 12,
1148 13, 85, 290, 291, 86, 239, 257, -164, 270, 271,
1149 272, 273, 274, 275, 276, 277, 278, 279, 114, 260,
1150 261, 128, 129, 130, 255, 256, 127, 313, 30, 331,
1151 31, 225, 32, 226, 33, 34, 35, 134, 303, 393,
1152 310, 1, 139, 122, 123, 282, 4, 319, 303, 306,
1153 393, 227, 303, 135, 304, 128, 129, 130, 311, 303,
1154 114, 142, 5, 320, 327, 98, 329, 107, 108, 286,
1155 287, 109, 112, 379, 148, 7, 85, 140, 268, 86,
1156 137, 229, 326, 230, 138, 8, 328, 241, 11, 330,
1157 265, 242, 145, 239, 266, 116, 306, 336, 106, 113,
1158 331, 333, 374, 375, 207, 303, 303, 303, 72, 73,
1159 74, 364, 117, 222, 118, 302, 80, 120, 314, 368,
1160 292, 293, -40, 288, 289, 145, 280, 145, 262, 119,
1161 263, 111, 401, 12, 13, 207, 303, 360, 341, 342,
1162 343, 229, 229, 229, 229, 229, 229, 229, 229, 229,
1163 229, 229, 229, 229, 229, 229, 229, 339, 207, 125,
1164 330, 365, 30, 380, 31, 229, 32, 230, 33, 34,
1165 35, 136, 340, 229, 126, 230, 348, 349, 350, 351,
1166 -102, 128, 129, 130, 283, 284, 285, 294, 295, 344,
1167 345, 352, 353, 207, 361, 346, 347, 143, 141, 149,
1168 144, 224, 314, 233, 222, 386, 240, 235, 246, 243,
1169 244, 389, 247, 253, 248, 145, 383, 229, 251, 230,
1170 254, 269, 402, 264, 296, 299, 297, 207, 298, 300,
1171 -39, 398, 307, 113, 400, 207, 122, 316, 318, 322,
1172 207, 408, 405, -34, 366, 362, 370, 367, 376, 406,
1173 80, 377, 303, 381, 378, -40, 387, 314, 388, 382,
1174 384, 385, 397, 177, 404, 392, 354, 356, 399, 338,
1175 396, 355, 314, 407, 359, 314, 357, 219, 223, 358,
1176 321, 308, 115, 314, 234, 369, 309, 391, 403, 124,
1177 314, 259, 323, 121, 324, 0, 371, 0, 0, 0,
1178 0, 0, 0, 0, 0, 0, 207, 0, 0, 0,
1179 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1180 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1181 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1182 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1183 0, 0, 0, 0, 0, 207, 0, 0, 207, 0,
1184 0, 0, 0, 0, 0, 0, 0, 0, 0, 207,
1185 0, 0, 0, 0, 0, 0, 12, 13, 14, 15,
1186 16, 17, 152, 153, 154, 207, 155, 156, 157, 158,
1187 159, 160, 161, 18, 19, 20, 21, 22, 23, 24,
1188 25, 26, 27, 28, 29, 30, 0, 31, 0, 32,
1189 0, 33, 34, 35, 36, 37, 38, 39, 40, 41,
1190 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1191 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1192 62, 63, 64, 65, 66, 67, 68, 69, 162, 163,
1193 164, 165, 166, 167, 168, 0, 0, 169, 170, 0,
1194 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1195 0, 0, 0, 0, 0, 0, 71, 72, 73, 74,
1196 0, 75, 0, 0, 0, 0, 0, 0, 0, 0,
1197 0, 0, 0, 80, 0, 0, 0, 0, 0, 0,
1198 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1199 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1200 0, 0, 0, 0, 0, 0, 0, 81, 0, 82,
1201 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1202 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1203 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1204 0, 0, 0, 0, 171, 0, 0, 0, 0, 0,
1205 172, 173, 174, 175, 0, 0, 0, 0, 0, 0,
1206 0, 0, 0, 0, 0, 176, 177, 178, 12, 13,
1207 14, 15, 16, 17, 152, 153, 154, 0, 155, 156,
1208 157, 158, 159, 160, 161, 18, 19, 20, 21, 22,
1209 23, 24, 25, 26, 27, 28, 29, 30, 0, 31,
1210 0, 32, 0, 33, 34, 35, 36, 37, 38, 39,
1211 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1212 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1213 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1214 162, 163, 164, 165, 166, 167, 168, 0, 0, 169,
1215 170, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1216 0, 0, 0, 0, 0, 0, 0, 0, 71, 72,
1217 73, 74, 0, 75, 0, 0, 0, 0, 0, 0,
1218 0, 0, 0, 0, 0, 80, 0, 0, 0, 0,
1219 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1220 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1221 0, 0, 0, 0, 0, 0, 0, 0, 0, 81,
1222 0, 82, 0, 0, 0, 0, 0, 0, 0, 0,
1223 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1224 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1225 0, 0, 0, 0, 0, 0, 171, 0, 0, 0,
1226 0, 0, 172, 173, 174, 175, 0, 0, 0, 0,
1227 0, 0, 0, 0, 0, 0, 0, 176, 177, 258,
1228 12, 13, 14, 15, 16, 17, 152, 153, 154, 0,
1229 155, 156, 157, 158, 159, 160, 161, 18, 19, 20,
1230 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
1231 0, 31, 0, 32, 0, 33, 34, 35, 36, 37,
1232 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1233 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1234 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1235 68, 69, 162, 163, 164, 165, 166, 167, 168, 0,
1236 0, 169, 170, 0, 0, 0, 0, 0, 0, 0,
1237 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1238 71, 72, 73, 74, 0, 75, 0, 0, 0, 0,
1239 0, 0, 0, 0, 0, 0, 0, 80, 0, 0,
1240 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1241 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1242 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1243 0, 81, 0, 82, 0, 0, 0, 0, 0, 0,
1244 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1245 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1246 0, 0, 0, 0, 0, 0, 0, 0, 171, 0,
1247 0, 0, 0, 0, 172, 173, 174, 175, 0, 0,
1248 0, 0, 0, 0, 0, 0, 0, 0, 0, 176,
1249 177, 305, 12, 13, 14, 15, 16, 17, 152, 153,
1250 154, 0, 155, 156, 157, 158, 159, 160, 161, 18,
1251 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1252 29, 30, 0, 31, 0, 32, 0, 33, 34, 35,
1253 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
1254 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1255 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1256 66, 67, 68, 69, 162, 163, 164, 165, 166, 167,
1257 168, 0, 0, 169, 170, 0, 0, 0, 0, 0,
1258 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1259 0, 0, 71, 72, 73, 74, 0, 75, 0, 0,
1260 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,
1261 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1262 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1263 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1264 0, 0, 0, 81, 0, 82, 0, 0, 0, 0,
1265 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1266 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1267 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1268 171, 0, 0, 0, 0, 0, 172, 173, 174, 175,
1269 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1270 0, 176, 177, 334, 12, 13, 14, 15, 16, 17,
1271 152, 153, 154, 0, 155, 156, 157, 158, 159, 160,
1272 161, 18, 19, 20, 21, 22, 23, 24, 25, 26,
1273 27, 28, 29, 30, 0, 31, 0, 32, 0, 33,
1274 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
1275 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1276 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1277 64, 65, 66, 67, 68, 69, 162, 163, 164, 165,
1278 166, 167, 168, 0, 0, 169, 170, 0, 0, 0,
1279 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1280 0, 0, 0, 0, 71, 72, 73, 74, 0, 75,
1281 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1282 0, 80, 0, 0, 0, 0, 0, 0, 0, 0,
1283 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1284 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1285 0, 0, 0, 0, 0, 81, 0, 82, 0, 0,
1286 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1287 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1288 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1289 0, 0, 171, 0, 0, 0, 0, 0, 172, 173,
1290 174, 175, 0, 0, 0, 0, 0, 0, 0, 0,
1291 0, 0, 0, 176, 177, 12, 13, 14, 15, 16,
1292 17, 152, 153, 154, 0, 155, 156, 157, 158, 159,
1293 160, 161, 18, 19, 20, 21, 22, 23, 24, 25,
1294 26, 27, 28, 29, 30, 0, 31, 0, 32, 0,
1295 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
1296 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1297 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1298 63, 64, 65, 66, 67, 68, 69, 162, 163, 164,
1299 165, 166, 167, 168, 0, 0, 169, 170, 0, 0,
1300 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1301 0, 0, 0, 0, 0, 71, 72, 73, 74, 0,
1302 75, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1303 0, 0, 80, 0, 0, 0, 0, 0, 0, 0,
1304 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1305 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1306 0, 0, 0, 0, 0, 0, 81, 0, 82, 0,
1307 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1308 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1309 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1310 0, 0, 0, 171, 0, 0, 0, 0, 0, 172,
1311 173, 174, 175, 12, 13, 14, 15, 16, 17, 0,
1312 0, 0, 0, 0, 176, 123, 0, 0, 0, 0,
1313 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
1314 28, 29, 30, 0, 31, 0, 32, 0, 33, 34,
1315 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1316 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1317 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1318 65, 66, 67, 68, 69, 0, 163, 164, 165, 166,
1319 167, 168, 0, 0, 169, 170, 0, 0, 0, 0,
1320 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1321 0, 0, 0, 71, 72, 73, 74, 0, 75, 0,
1322 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1323 80, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1324 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1325 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1326 0, 0, 0, 0, 81, 0, 82, 0, 0, 0,
1327 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1328 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1329 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1330 0, 171, 0, 0, 0, 0, 0, 172, 173, 174,
1331 175, 12, 13, 14, 15, 16, 17, 0, 0, 0,
1332 0, 0, 176, 0, 0, 0, 0, 0, 18, 19,
1333 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
1334 30, 0, 31, 0, 32, 0, 33, 34, 35, 36,
1335 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
1336 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1337 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1338 67, 68, 69, 0, 163, 164, 165, 166, 167, 168,
1339 0, 0, 169, 170, 0, 0, 0, 0, 0, 0,
1340 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1341 0, 113, 72, 73, 74, 0, 0, 0, 0, 0,
1342 0, 0, 0, 0, 0, 0, 0, 0, 80, 14,
1343 15, 16, 17, 0, 0, 0, 0, 0, 0, 0,
1344 0, 0, 0, 0, 18, 19, 20, 21, 22, 23,
1345 24, 25, 26, 27, 28, 29, 0, 0, 0, 0,
1346 0, 0, 81, 0, 82, 36, 37, 38, 39, 40,
1347 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1348 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1349 61, 62, 63, 64, 65, 66, 67, 68, 69, 171,
1350 70, 0, 0, 0, 0, 172, 173, 174, 175, 0,
1351 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1352 -263, 0, 0, 0, 0, 0, 0, 0, 72, 73,
1353 74, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1354 0, 0, 0, 0, 0, 14, 15, 16, 17, 0,
1355 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1356 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
1357 28, 29, 0, 0, 0, 0, 0, 0, 81, 0,
1358 82, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1359 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1360 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1361 65, 66, 67, 68, 69, 0, 70, 0, 0, 0,
1362 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1363 0, 0, 0, 0, 0, 0, 0, 0, 238, 0,
1364 0, 0, 0, 0, 72, 73, 74, 0, 0, 0,
1365 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1366 0, 14, 15, 16, 17, 0, 0, 0, 0, 0,
1367 0, 0, 0, 0, 0, 0, 18, 19, 20, 21,
1368 22, 23, 24, 25, 26, 27, 28, 29, 0, 0,
1369 0, 0, 0, 0, 81, 0, 82, 36, 37, 38,
1370 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1371 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1372 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1373 69, 0, 163, 164, 165, 166, 167, 168, 0, 0,
1374 169, 170, 0, 0, 0, 0, 0, 0, 0, 0,
1375 0, 0, 0, 0, 317, 0, 0, 0, 0, 0,
1376 72, 73, 74, 0, 0, 0, 0, 0, 0, 0,
1377 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1378 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1379 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1380 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1381 81, 0, 82, 0, 0, 0, 0, 0, 0, 0,
1382 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1383 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1384 0, 0, 0, 0, 0, 0, 0, 171, 0, 0,
1385 0, 0, 0, 172, 173, 174, 175, 12, 13, 14,
1386 15, 16, 17, 0, 0, 0, 0, 0, 249, 0,
1387 0, 0, 0, 0, 18, 19, 20, 21, 22, 23,
1388 24, 25, 26, 27, 28, 29, 30, 0, 31, 0,
1389 32, 0, 33, 34, 35, 36, 37, 38, 39, 40,
1390 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1391 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1392 61, 62, 63, 64, 65, 66, 67, 68, 69, 0,
1393 163, 164, 165, 166, 167, 168, 0, 0, 169, 170,
1394 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1395 0, 0, 0, 0, 0, 0, 0, 113, 72, 73,
1396 74, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1397 0, 0, 0, 0, 80, 0, 0, 0, 0, 0,
1398 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1399 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1400 0, 0, 0, 0, 0, 0, 0, 0, 81, 0,
1401 82, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1402 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1403 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1404 14, 15, 16, 17, 0, 171, 0, 0, 0, 0,
1405 0, 172, 173, 174, 175, 18, 19, 20, 21, 22,
1406 23, 24, 25, 26, 27, 28, 29, 0, 0, 0,
1407 0, 0, 0, 0, 0, 0, 36, 37, 38, 39,
1408 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1409 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1410 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1411 0, 163, 164, 165, 166, 167, 168, 0, 0, 169,
1412 170, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1413 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,
1414 73, 74, 0, 0, 0, 0, 0, 0, 0, 0,
1415 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1416 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1417 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1418 0, 0, 0, 0, 0, 0, 0, 0, 0, 81,
1419 0, 82, 0, 0, 0, 0, 0, 0, 0, 0,
1420 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1421 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1422 0, 14, 15, 16, 17, 0, 171, 0, 0, 228,
1423 0, 0, 172, 173, 174, 175, 18, 19, 20, 21,
1424 22, 23, 24, 25, 26, 27, 28, 29, 0, 0,
1425 0, 0, 0, 0, 0, 0, 0, 36, 37, 38,
1426 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1427 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1428 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1429 69, 0, 163, 164, 165, 166, 167, 168, 0, 0,
1430 169, 170, 0, 0, 0, 0, 0, 0, 0, 0,
1431 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1432 72, 73, 74, 0, 0, 0, 0, 0, 0, 0,
1433 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1434 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1435 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1436 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1437 81, 0, 82, 0, 0, 0, 0, 0, 0, 0,
1438 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1439 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1440 0, 0, 14, 15, 16, 17, 0, 171, 0, 0,
1441 312, 0, 0, 172, 173, 174, 175, 18, 19, 20,
1442 21, 22, 23, 24, 25, 26, 27, 28, 29, 0,
1443 0, 0, 0, 0, 0, 0, 0, 0, 36, 37,
1444 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1445 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1446 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1447 68, 69, 0, 163, 164, 165, 166, 167, 168, 0,
1448 0, 169, 170, 0, 0, 0, 0, 0, 0, 0,
1449 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1450 0, 72, 73, 74, 0, 0, 0, 0, 0, 0,
1451 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1452 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1453 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1454 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1455 0, 81, 0, 82, 0, 0, 0, 0, 0, 0,
1456 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1457 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1458 0, 0, 0, 14, 15, 16, 17, 0, 171, 0,
1459 0, 363, 0, 0, 172, 173, 174, 175, 18, 19,
1460 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
1461 0, 0, 0, 0, 0, 0, 0, 0, 0, 36,
1462 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
1463 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1464 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1465 67, 68, 69, 0, 163, 164, 165, 166, 167, 168,
1466 0, 0, 169, 170, 0, 0, 0, 0, 0, 0,
1467 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1468 0, 0, 72, 73, 74, 0, 0, 0, 0, 0,
1469 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1470 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1471 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1472 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1473 0, 0, 81, 0, 82, 0, 0, 0, 0, 0,
1474 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1475 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1476 0, 0, 0, 0, 14, 15, 16, 17, 0, 171,
1477 0, 0, 0, 0, 0, 172, 173, 174, 175, 18,
1478 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1479 29, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1480 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
1481 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1482 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1483 66, 67, 68, 267, 0, 163, 164, 165, 166, 167,
1484 168, 0, 0, 169, 170, 0, 0, 0, 0, 0,
1485 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1486 0, 0, 0, 72, 73, 74, 0, 0, 0, 0,
1487 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1488 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1489 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1490 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1491 0, 0, 0, 81, 0, 82, 0, 0, 0, 0,
1492 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1493 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1494 -3, 0, 0, 12, 13, 14, 15, 16, 17, 0,
1495 171, 0, 0, 0, 0, 0, 172, 173, 174, 175,
1496 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
1497 28, 29, 30, 0, 31, 0, 32, 0, 33, 34,
1498 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1499 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1500 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1501 65, 66, 67, 68, 69, 0, 70, 0, 0, 0,
1502 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1503 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1504 0, 0, 0, 71, 72, 73, 74, 0, 75, 0,
1505 0, 0, 0, 0, 0, 0, 76, 77, 78, 79,
1506 80, 0, 12, 13, 14, 15, 16, 17, 0, 0,
1507 0, 0, 0, 0, 0, 0, 0, 0, 0, 18,
1508 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1509 29, 30, 0, 31, 81, 32, 82, 33, 34, 35,
1510 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
1511 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1512 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1513 66, 67, 68, 69, 0, 70, 0, 0, 0, 0,
1514 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1515 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1516 0, 0, 71, 72, 73, 74, 0, 75, 0, 0,
1517 0, 0, 0, 0, 0, 76, 77, 78, 79, 80,
1518 14, 15, 16, 17, 0, 0, 0, 0, 0, 0,
1519 0, 0, 0, 0, 0, 18, 19, 20, 21, 22,
1520 23, 24, 25, 26, 27, 28, 29, 0, 0, 0,
1521 0, 0, 0, 81, 0, 82, 36, 37, 38, 39,
1522 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1523 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1524 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1525 0, 337, 14, 15, 16, 17, 168, 0, 0, 0,
1526 0, 0, 0, 0, 0, 0, 0, 18, 19, 20,
1527 21, 22, 23, 24, 25, 26, 27, 28, 29, 72,
1528 73, 74, 0, 0, 0, 0, 0, 0, 36, 37,
1529 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1530 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1531 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1532 68, 69, 0, 70, 14, 15, 16, 17, 0, 81,
1533 0, 82, 0, 0, 0, 0, 0, 0, 0, 18,
1534 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1535 29, 72, 73, 74, 0, 0, 0, 0, 0, 0,
1536 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
1537 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1538 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1539 66, 67, 68, 69, 0, 70, 0, 0, 0, 0,
1540 0, 81, 0, 82, 0, 0, 0, 0, 0, 0,
1541 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1542 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1543 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1544 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1545 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1546 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1550 static const yytype_int16 yycheck
[] =
1552 9, 154, 4, 158, 76, 160, 141, 91, 141, 3,
1553 4, 9, 86, 87, 9, 146, 171, 76, 93, 94,
1554 95, 96, 97, 98, 99, 100, 101, 102, 71, 84,
1555 85, 33, 34, 35, 169, 170, 4, 226, 32, 254,
1556 34, 191, 36, 193, 38, 39, 40, 196, 196, 377,
1557 193, 109, 95, 212, 213, 190, 78, 196, 196, 212,
1558 388, 211, 196, 212, 212, 33, 34, 35, 211, 196,
1559 113, 102, 0, 212, 212, 84, 210, 33, 34, 197,
1560 198, 37, 76, 210, 115, 113, 84, 96, 187, 84,
1561 33, 226, 247, 226, 37, 110, 251, 192, 76, 254,
1562 192, 196, 111, 234, 196, 113, 259, 262, 112, 103,
1563 325, 192, 192, 192, 123, 196, 196, 196, 104, 105,
1564 106, 310, 113, 132, 113, 209, 120, 191, 227, 318,
1565 204, 205, 191, 82, 83, 144, 211, 146, 193, 113,
1566 195, 213, 192, 3, 4, 154, 196, 302, 283, 284,
1567 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
1568 295, 296, 297, 298, 299, 300, 301, 266, 177, 192,
1569 325, 311, 32, 362, 34, 310, 36, 310, 38, 39,
1570 40, 76, 281, 318, 196, 318, 290, 291, 292, 293,
1571 192, 33, 34, 35, 201, 202, 203, 88, 89, 286,
1572 287, 294, 295, 212, 303, 288, 289, 76, 193, 76,
1573 213, 76, 311, 113, 223, 370, 212, 76, 191, 212,
1574 212, 374, 191, 210, 212, 234, 366, 362, 191, 362,
1575 191, 191, 387, 192, 206, 90, 207, 246, 208, 92,
1576 191, 381, 76, 103, 384, 254, 212, 194, 193, 75,
1577 259, 404, 392, 192, 211, 193, 191, 194, 76, 399,
1578 120, 192, 196, 211, 194, 191, 212, 366, 192, 194,
1579 211, 194, 194, 213, 12, 211, 296, 298, 211, 263,
1580 379, 297, 381, 212, 301, 384, 299, 126, 133, 300,
1581 242, 223, 75, 392, 144, 319, 223, 375, 388, 86,
1582 399, 177, 246, 84, 246, -1, 325, -1, -1, -1,
1583 -1, -1, -1, -1, -1, -1, 325, -1, -1, -1,
1584 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1585 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1586 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1587 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1588 -1, -1, -1, -1, -1, 374, -1, -1, 377, -1,
1589 -1, -1, -1, -1, -1, -1, -1, -1, -1, 388,
1590 -1, -1, -1, -1, -1, -1, 3, 4, 5, 6,
1591 7, 8, 9, 10, 11, 404, 13, 14, 15, 16,
1592 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
1593 27, 28, 29, 30, 31, 32, -1, 34, -1, 36,
1594 -1, 38, 39, 40, 41, 42, 43, 44, 45, 46,
1595 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1596 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1597 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1598 77, 78, 79, 80, 81, -1, -1, 84, 85, -1,
1599 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1600 -1, -1, -1, -1, -1, -1, 103, 104, 105, 106,
1601 -1, 108, -1, -1, -1, -1, -1, -1, -1, -1,
1602 -1, -1, -1, 120, -1, -1, -1, -1, -1, -1,
1603 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1604 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1605 -1, -1, -1, -1, -1, -1, -1, 154, -1, 156,
1606 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1607 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1608 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1609 -1, -1, -1, -1, 191, -1, -1, -1, -1, -1,
1610 197, 198, 199, 200, -1, -1, -1, -1, -1, -1,
1611 -1, -1, -1, -1, -1, 212, 213, 214, 3, 4,
1612 5, 6, 7, 8, 9, 10, 11, -1, 13, 14,
1613 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
1614 25, 26, 27, 28, 29, 30, 31, 32, -1, 34,
1615 -1, 36, -1, 38, 39, 40, 41, 42, 43, 44,
1616 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1617 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1618 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1619 75, 76, 77, 78, 79, 80, 81, -1, -1, 84,
1620 85, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1621 -1, -1, -1, -1, -1, -1, -1, -1, 103, 104,
1622 105, 106, -1, 108, -1, -1, -1, -1, -1, -1,
1623 -1, -1, -1, -1, -1, 120, -1, -1, -1, -1,
1624 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1625 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1626 -1, -1, -1, -1, -1, -1, -1, -1, -1, 154,
1627 -1, 156, -1, -1, -1, -1, -1, -1, -1, -1,
1628 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1629 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1630 -1, -1, -1, -1, -1, -1, 191, -1, -1, -1,
1631 -1, -1, 197, 198, 199, 200, -1, -1, -1, -1,
1632 -1, -1, -1, -1, -1, -1, -1, 212, 213, 214,
1633 3, 4, 5, 6, 7, 8, 9, 10, 11, -1,
1634 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
1635 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
1636 -1, 34, -1, 36, -1, 38, 39, 40, 41, 42,
1637 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1638 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1639 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
1640 73, 74, 75, 76, 77, 78, 79, 80, 81, -1,
1641 -1, 84, 85, -1, -1, -1, -1, -1, -1, -1,
1642 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1643 103, 104, 105, 106, -1, 108, -1, -1, -1, -1,
1644 -1, -1, -1, -1, -1, -1, -1, 120, -1, -1,
1645 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1646 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1647 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1648 -1, 154, -1, 156, -1, -1, -1, -1, -1, -1,
1649 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1650 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1651 -1, -1, -1, -1, -1, -1, -1, -1, 191, -1,
1652 -1, -1, -1, -1, 197, 198, 199, 200, -1, -1,
1653 -1, -1, -1, -1, -1, -1, -1, -1, -1, 212,
1654 213, 214, 3, 4, 5, 6, 7, 8, 9, 10,
1655 11, -1, 13, 14, 15, 16, 17, 18, 19, 20,
1656 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
1657 31, 32, -1, 34, -1, 36, -1, 38, 39, 40,
1658 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1659 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1660 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1661 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
1662 81, -1, -1, 84, 85, -1, -1, -1, -1, -1,
1663 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1664 -1, -1, 103, 104, 105, 106, -1, 108, -1, -1,
1665 -1, -1, -1, -1, -1, -1, -1, -1, -1, 120,
1666 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1667 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1668 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1669 -1, -1, -1, 154, -1, 156, -1, -1, -1, -1,
1670 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1671 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1672 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1673 191, -1, -1, -1, -1, -1, 197, 198, 199, 200,
1674 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1675 -1, 212, 213, 214, 3, 4, 5, 6, 7, 8,
1676 9, 10, 11, -1, 13, 14, 15, 16, 17, 18,
1677 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1678 29, 30, 31, 32, -1, 34, -1, 36, -1, 38,
1679 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1680 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1681 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1682 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
1683 79, 80, 81, -1, -1, 84, 85, -1, -1, -1,
1684 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1685 -1, -1, -1, -1, 103, 104, 105, 106, -1, 108,
1686 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1687 -1, 120, -1, -1, -1, -1, -1, -1, -1, -1,
1688 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1689 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1690 -1, -1, -1, -1, -1, 154, -1, 156, -1, -1,
1691 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1692 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1693 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1694 -1, -1, 191, -1, -1, -1, -1, -1, 197, 198,
1695 199, 200, -1, -1, -1, -1, -1, -1, -1, -1,
1696 -1, -1, -1, 212, 213, 3, 4, 5, 6, 7,
1697 8, 9, 10, 11, -1, 13, 14, 15, 16, 17,
1698 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
1699 28, 29, 30, 31, 32, -1, 34, -1, 36, -1,
1700 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1701 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1702 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1703 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
1704 78, 79, 80, 81, -1, -1, 84, 85, -1, -1,
1705 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1706 -1, -1, -1, -1, -1, 103, 104, 105, 106, -1,
1707 108, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1708 -1, -1, 120, -1, -1, -1, -1, -1, -1, -1,
1709 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1710 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1711 -1, -1, -1, -1, -1, -1, 154, -1, 156, -1,
1712 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1713 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1714 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1715 -1, -1, -1, 191, -1, -1, -1, -1, -1, 197,
1716 198, 199, 200, 3, 4, 5, 6, 7, 8, -1,
1717 -1, -1, -1, -1, 212, 213, -1, -1, -1, -1,
1718 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
1719 30, 31, 32, -1, 34, -1, 36, -1, 38, 39,
1720 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1721 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1722 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1723 70, 71, 72, 73, 74, -1, 76, 77, 78, 79,
1724 80, 81, -1, -1, 84, 85, -1, -1, -1, -1,
1725 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1726 -1, -1, -1, 103, 104, 105, 106, -1, 108, -1,
1727 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1728 120, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1729 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1730 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1731 -1, -1, -1, -1, 154, -1, 156, -1, -1, -1,
1732 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1733 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1734 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1735 -1, 191, -1, -1, -1, -1, -1, 197, 198, 199,
1736 200, 3, 4, 5, 6, 7, 8, -1, -1, -1,
1737 -1, -1, 212, -1, -1, -1, -1, -1, 20, 21,
1738 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
1739 32, -1, 34, -1, 36, -1, 38, 39, 40, 41,
1740 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1741 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1742 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1743 72, 73, 74, -1, 76, 77, 78, 79, 80, 81,
1744 -1, -1, 84, 85, -1, -1, -1, -1, -1, -1,
1745 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1746 -1, 103, 104, 105, 106, -1, -1, -1, -1, -1,
1747 -1, -1, -1, -1, -1, -1, -1, -1, 120, 5,
1748 6, 7, 8, -1, -1, -1, -1, -1, -1, -1,
1749 -1, -1, -1, -1, 20, 21, 22, 23, 24, 25,
1750 26, 27, 28, 29, 30, 31, -1, -1, -1, -1,
1751 -1, -1, 154, -1, 156, 41, 42, 43, 44, 45,
1752 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1753 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1754 66, 67, 68, 69, 70, 71, 72, 73, 74, 191,
1755 76, -1, -1, -1, -1, 197, 198, 199, 200, -1,
1756 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1757 212, -1, -1, -1, -1, -1, -1, -1, 104, 105,
1758 106, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1759 -1, -1, -1, -1, -1, 5, 6, 7, 8, -1,
1760 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1761 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
1762 30, 31, -1, -1, -1, -1, -1, -1, 154, -1,
1763 156, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1764 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1765 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1766 70, 71, 72, 73, 74, -1, 76, -1, -1, -1,
1767 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1768 -1, -1, -1, -1, -1, -1, -1, -1, 214, -1,
1769 -1, -1, -1, -1, 104, 105, 106, -1, -1, -1,
1770 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1771 -1, 5, 6, 7, 8, -1, -1, -1, -1, -1,
1772 -1, -1, -1, -1, -1, -1, 20, 21, 22, 23,
1773 24, 25, 26, 27, 28, 29, 30, 31, -1, -1,
1774 -1, -1, -1, -1, 154, -1, 156, 41, 42, 43,
1775 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1776 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1777 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1778 74, -1, 76, 77, 78, 79, 80, 81, -1, -1,
1779 84, 85, -1, -1, -1, -1, -1, -1, -1, -1,
1780 -1, -1, -1, -1, 214, -1, -1, -1, -1, -1,
1781 104, 105, 106, -1, -1, -1, -1, -1, -1, -1,
1782 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1783 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1784 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1785 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1786 154, -1, 156, -1, -1, -1, -1, -1, -1, -1,
1787 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1788 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1789 -1, -1, -1, -1, -1, -1, -1, 191, -1, -1,
1790 -1, -1, -1, 197, 198, 199, 200, 3, 4, 5,
1791 6, 7, 8, -1, -1, -1, -1, -1, 212, -1,
1792 -1, -1, -1, -1, 20, 21, 22, 23, 24, 25,
1793 26, 27, 28, 29, 30, 31, 32, -1, 34, -1,
1794 36, -1, 38, 39, 40, 41, 42, 43, 44, 45,
1795 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1796 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1797 66, 67, 68, 69, 70, 71, 72, 73, 74, -1,
1798 76, 77, 78, 79, 80, 81, -1, -1, 84, 85,
1799 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1800 -1, -1, -1, -1, -1, -1, -1, 103, 104, 105,
1801 106, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1802 -1, -1, -1, -1, 120, -1, -1, -1, -1, -1,
1803 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1804 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1805 -1, -1, -1, -1, -1, -1, -1, -1, 154, -1,
1806 156, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1807 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1808 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1809 5, 6, 7, 8, -1, 191, -1, -1, -1, -1,
1810 -1, 197, 198, 199, 200, 20, 21, 22, 23, 24,
1811 25, 26, 27, 28, 29, 30, 31, -1, -1, -1,
1812 -1, -1, -1, -1, -1, -1, 41, 42, 43, 44,
1813 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1814 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1815 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1816 -1, 76, 77, 78, 79, 80, 81, -1, -1, 84,
1817 85, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1818 -1, -1, -1, -1, -1, -1, -1, -1, -1, 104,
1819 105, 106, -1, -1, -1, -1, -1, -1, -1, -1,
1820 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1821 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1822 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1823 -1, -1, -1, -1, -1, -1, -1, -1, -1, 154,
1824 -1, 156, -1, -1, -1, -1, -1, -1, -1, -1,
1825 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1826 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1827 -1, 5, 6, 7, 8, -1, 191, -1, -1, 194,
1828 -1, -1, 197, 198, 199, 200, 20, 21, 22, 23,
1829 24, 25, 26, 27, 28, 29, 30, 31, -1, -1,
1830 -1, -1, -1, -1, -1, -1, -1, 41, 42, 43,
1831 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1832 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1833 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1834 74, -1, 76, 77, 78, 79, 80, 81, -1, -1,
1835 84, 85, -1, -1, -1, -1, -1, -1, -1, -1,
1836 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1837 104, 105, 106, -1, -1, -1, -1, -1, -1, -1,
1838 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1839 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1840 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1841 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1842 154, -1, 156, -1, -1, -1, -1, -1, -1, -1,
1843 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1844 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1845 -1, -1, 5, 6, 7, 8, -1, 191, -1, -1,
1846 194, -1, -1, 197, 198, 199, 200, 20, 21, 22,
1847 23, 24, 25, 26, 27, 28, 29, 30, 31, -1,
1848 -1, -1, -1, -1, -1, -1, -1, -1, 41, 42,
1849 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1850 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1851 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
1852 73, 74, -1, 76, 77, 78, 79, 80, 81, -1,
1853 -1, 84, 85, -1, -1, -1, -1, -1, -1, -1,
1854 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1855 -1, 104, 105, 106, -1, -1, -1, -1, -1, -1,
1856 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1857 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1858 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1859 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1860 -1, 154, -1, 156, -1, -1, -1, -1, -1, -1,
1861 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1862 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1863 -1, -1, -1, 5, 6, 7, 8, -1, 191, -1,
1864 -1, 194, -1, -1, 197, 198, 199, 200, 20, 21,
1865 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
1866 -1, -1, -1, -1, -1, -1, -1, -1, -1, 41,
1867 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1868 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1869 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1870 72, 73, 74, -1, 76, 77, 78, 79, 80, 81,
1871 -1, -1, 84, 85, -1, -1, -1, -1, -1, -1,
1872 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1873 -1, -1, 104, 105, 106, -1, -1, -1, -1, -1,
1874 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1875 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1876 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1877 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1878 -1, -1, 154, -1, 156, -1, -1, -1, -1, -1,
1879 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1880 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1881 -1, -1, -1, -1, 5, 6, 7, 8, -1, 191,
1882 -1, -1, -1, -1, -1, 197, 198, 199, 200, 20,
1883 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
1884 31, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1885 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1886 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1887 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1888 71, 72, 73, 74, -1, 76, 77, 78, 79, 80,
1889 81, -1, -1, 84, 85, -1, -1, -1, -1, -1,
1890 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1891 -1, -1, -1, 104, 105, 106, -1, -1, -1, -1,
1892 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1893 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1894 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1895 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1896 -1, -1, -1, 154, -1, 156, -1, -1, -1, -1,
1897 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1898 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1899 0, -1, -1, 3, 4, 5, 6, 7, 8, -1,
1900 191, -1, -1, -1, -1, -1, 197, 198, 199, 200,
1901 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
1902 30, 31, 32, -1, 34, -1, 36, -1, 38, 39,
1903 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1904 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1905 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1906 70, 71, 72, 73, 74, -1, 76, -1, -1, -1,
1907 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1908 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1909 -1, -1, -1, 103, 104, 105, 106, -1, 108, -1,
1910 -1, -1, -1, -1, -1, -1, 116, 117, 118, 119,
1911 120, -1, 3, 4, 5, 6, 7, 8, -1, -1,
1912 -1, -1, -1, -1, -1, -1, -1, -1, -1, 20,
1913 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
1914 31, 32, -1, 34, 154, 36, 156, 38, 39, 40,
1915 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1916 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1917 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1918 71, 72, 73, 74, -1, 76, -1, -1, -1, -1,
1919 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1920 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1921 -1, -1, 103, 104, 105, 106, -1, 108, -1, -1,
1922 -1, -1, -1, -1, -1, 116, 117, 118, 119, 120,
1923 5, 6, 7, 8, -1, -1, -1, -1, -1, -1,
1924 -1, -1, -1, -1, -1, 20, 21, 22, 23, 24,
1925 25, 26, 27, 28, 29, 30, 31, -1, -1, -1,
1926 -1, -1, -1, 154, -1, 156, 41, 42, 43, 44,
1927 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1928 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1929 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1930 -1, 76, 5, 6, 7, 8, 81, -1, -1, -1,
1931 -1, -1, -1, -1, -1, -1, -1, 20, 21, 22,
1932 23, 24, 25, 26, 27, 28, 29, 30, 31, 104,
1933 105, 106, -1, -1, -1, -1, -1, -1, 41, 42,
1934 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1935 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1936 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
1937 73, 74, -1, 76, 5, 6, 7, 8, -1, 154,
1938 -1, 156, -1, -1, -1, -1, -1, -1, -1, 20,
1939 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
1940 31, 104, 105, 106, -1, -1, -1, -1, -1, -1,
1941 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1942 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1943 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1944 71, 72, 73, 74, -1, 76, -1, -1, -1, -1,
1945 -1, 154, -1, 156, -1, -1, -1, -1, -1, -1,
1946 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1947 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1948 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1949 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1950 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1951 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1952 -1, -1, -1, 154, -1, 156
1955 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1956 symbol of state STATE-NUM. */
1957 static const yytype_uint16 yystos
[] =
1959 0, 109, 216, 218, 78, 0, 220, 113, 110, 217,
1960 221, 76, 3, 4, 5, 6, 7, 8, 20, 21,
1961 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
1962 32, 34, 36, 38, 39, 40, 41, 42, 43, 44,
1963 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1964 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1965 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1966 76, 103, 104, 105, 106, 108, 116, 117, 118, 119,
1967 120, 154, 156, 219, 222, 252, 253, 254, 255, 256,
1968 261, 262, 263, 264, 265, 268, 270, 271, 272, 273,
1969 274, 275, 276, 277, 301, 302, 112, 33, 34, 37,
1970 76, 213, 76, 103, 270, 276, 113, 113, 113, 113,
1971 191, 301, 212, 213, 288, 192, 196, 4, 33, 34,
1972 35, 258, 259, 269, 196, 212, 76, 33, 37, 270,
1973 272, 193, 273, 76, 213, 272, 278, 279, 273, 76,
1974 266, 267, 9, 10, 11, 13, 14, 15, 16, 17,
1975 18, 19, 75, 76, 77, 78, 79, 80, 81, 84,
1976 85, 191, 197, 198, 199, 200, 212, 213, 214, 223,
1977 224, 225, 227, 228, 229, 230, 231, 232, 233, 234,
1978 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
1979 245, 246, 247, 248, 250, 252, 253, 272, 283, 284,
1980 285, 286, 289, 290, 291, 294, 295, 296, 300, 258,
1981 257, 260, 272, 259, 76, 191, 193, 211, 194, 234,
1982 247, 251, 272, 113, 278, 76, 280, 281, 214, 279,
1983 212, 192, 196, 212, 212, 284, 191, 191, 212, 212,
1984 250, 191, 250, 210, 191, 234, 234, 250, 214, 289,
1985 84, 85, 193, 195, 192, 192, 196, 74, 248, 191,
1986 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
1987 211, 249, 234, 201, 202, 203, 197, 198, 82, 83,
1988 86, 87, 204, 205, 88, 89, 206, 207, 208, 90,
1989 92, 91, 209, 196, 212, 214, 284, 76, 257, 260,
1990 193, 211, 194, 251, 248, 282, 194, 214, 193, 196,
1991 212, 267, 75, 283, 290, 297, 250, 212, 250, 210,
1992 250, 263, 293, 192, 214, 226, 250, 76, 229, 248,
1993 248, 234, 234, 234, 236, 236, 237, 237, 238, 238,
1994 238, 238, 239, 239, 240, 241, 242, 243, 244, 245,
1995 250, 248, 193, 194, 251, 282, 211, 194, 251, 281,
1996 191, 293, 298, 299, 192, 192, 76, 192, 194, 210,
1997 251, 211, 194, 282, 211, 194, 250, 212, 192, 284,
1998 292, 286, 211, 285, 287, 288, 248, 194, 282, 211,
1999 282, 192, 250, 287, 12, 282, 282, 212, 284
2002 #define yyerrok (yyerrstatus = 0)
2003 #define yyclearin (yychar = YYEMPTY)
2004 #define YYEMPTY (-2)
2007 #define YYACCEPT goto yyacceptlab
2008 #define YYABORT goto yyabortlab
2009 #define YYERROR goto yyerrorlab
2012 /* Like YYERROR except do call yyerror. This remains here temporarily
2013 to ease the transition to the new meaning of YYERROR, for GCC.
2014 Once GCC version 2 has supplanted version 1, this can go. However,
2015 YYFAIL appears to be in use. Nevertheless, it is formally deprecated
2016 in Bison 2.4.2's NEWS entry, where a plan to phase it out is
2019 #define YYFAIL goto yyerrlab
2021 /* This is here to suppress warnings from the GCC cpp's
2022 -Wunused-macros. Normally we don't worry about that warning, but
2023 some users do, and we want to make it easy for users to remove
2024 YYFAIL uses, which will produce warnings from Bison 2.5. */
2027 #define YYRECOVERING() (!!yyerrstatus)
2029 #define YYBACKUP(Token, Value) \
2031 if (yychar == YYEMPTY && yylen == 1) \
2035 yytoken = YYTRANSLATE (yychar); \
2041 yyerror (&yylloc, state, YY_("syntax error: cannot back up")); \
2048 #define YYERRCODE 256
2051 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
2052 If N is 0, then set CURRENT to the empty location which ends
2053 the previous symbol: RHS[0] (always defined). */
2055 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
2056 #ifndef YYLLOC_DEFAULT
2057 # define YYLLOC_DEFAULT(Current, Rhs, N) \
2061 (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
2062 (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
2063 (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
2064 (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
2068 (Current).first_line = (Current).last_line = \
2069 YYRHSLOC (Rhs, 0).last_line; \
2070 (Current).first_column = (Current).last_column = \
2071 YYRHSLOC (Rhs, 0).last_column; \
2077 /* YY_LOCATION_PRINT -- Print the location on the stream.
2078 This macro was not mandated originally: define only if we know
2079 we won't break user code: when these are the locations we know. */
2081 #ifndef YY_LOCATION_PRINT
2082 # if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
2083 # define YY_LOCATION_PRINT(File, Loc) \
2084 fprintf (File, "%d.%d-%d.%d", \
2085 (Loc).first_line, (Loc).first_column, \
2086 (Loc).last_line, (Loc).last_column)
2088 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2093 /* YYLEX -- calling `yylex' with the right arguments. */
2096 # define YYLEX yylex (&yylval, &yylloc, YYLEX_PARAM)
2098 # define YYLEX yylex (&yylval, &yylloc, scanner)
2101 /* Enable debugging if requested. */
2105 # include <stdio.h> /* INFRINGES ON USER NAME SPACE */
2106 # define YYFPRINTF fprintf
2109 # define YYDPRINTF(Args) \
2115 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
2119 YYFPRINTF (stderr, "%s ", Title); \
2120 yy_symbol_print (stderr, \
2121 Type, Value, Location, state); \
2122 YYFPRINTF (stderr, "\n"); \
2127 /*--------------------------------.
2128 | Print this symbol on YYOUTPUT. |
2129 `--------------------------------*/
2132 #if (defined __STDC__ || defined __C99__FUNC__ \
2133 || defined __cplusplus || defined _MSC_VER)
2135 yy_symbol_value_print (FILE *yyoutput
, int yytype
, YYSTYPE
const * const yyvaluep
, YYLTYPE
const * const yylocationp
, struct _mesa_glsl_parse_state
*state
)
2138 yy_symbol_value_print (yyoutput
, yytype
, yyvaluep
, yylocationp
, state
)
2141 YYSTYPE
const * const yyvaluep
;
2142 YYLTYPE
const * const yylocationp
;
2143 struct _mesa_glsl_parse_state
*state
;
2148 YYUSE (yylocationp
);
2151 if (yytype
< YYNTOKENS
)
2152 YYPRINT (yyoutput
, yytoknum
[yytype
], *yyvaluep
);
2164 /*--------------------------------.
2165 | Print this symbol on YYOUTPUT. |
2166 `--------------------------------*/
2168 #if (defined __STDC__ || defined __C99__FUNC__ \
2169 || defined __cplusplus || defined _MSC_VER)
2171 yy_symbol_print (FILE *yyoutput
, int yytype
, YYSTYPE
const * const yyvaluep
, YYLTYPE
const * const yylocationp
, struct _mesa_glsl_parse_state
*state
)
2174 yy_symbol_print (yyoutput
, yytype
, yyvaluep
, yylocationp
, state
)
2177 YYSTYPE
const * const yyvaluep
;
2178 YYLTYPE
const * const yylocationp
;
2179 struct _mesa_glsl_parse_state
*state
;
2182 if (yytype
< YYNTOKENS
)
2183 YYFPRINTF (yyoutput
, "token %s (", yytname
[yytype
]);
2185 YYFPRINTF (yyoutput
, "nterm %s (", yytname
[yytype
]);
2187 YY_LOCATION_PRINT (yyoutput
, *yylocationp
);
2188 YYFPRINTF (yyoutput
, ": ");
2189 yy_symbol_value_print (yyoutput
, yytype
, yyvaluep
, yylocationp
, state
);
2190 YYFPRINTF (yyoutput
, ")");
2193 /*------------------------------------------------------------------.
2194 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
2196 `------------------------------------------------------------------*/
2198 #if (defined __STDC__ || defined __C99__FUNC__ \
2199 || defined __cplusplus || defined _MSC_VER)
2201 yy_stack_print (yytype_int16
*yybottom
, yytype_int16
*yytop
)
2204 yy_stack_print (yybottom
, yytop
)
2205 yytype_int16
*yybottom
;
2206 yytype_int16
*yytop
;
2209 YYFPRINTF (stderr
, "Stack now");
2210 for (; yybottom
<= yytop
; yybottom
++)
2212 int yybot
= *yybottom
;
2213 YYFPRINTF (stderr
, " %d", yybot
);
2215 YYFPRINTF (stderr
, "\n");
2218 # define YY_STACK_PRINT(Bottom, Top) \
2221 yy_stack_print ((Bottom), (Top)); \
2225 /*------------------------------------------------.
2226 | Report that the YYRULE is going to be reduced. |
2227 `------------------------------------------------*/
2229 #if (defined __STDC__ || defined __C99__FUNC__ \
2230 || defined __cplusplus || defined _MSC_VER)
2232 yy_reduce_print (YYSTYPE
*yyvsp
, YYLTYPE
*yylsp
, int yyrule
, struct _mesa_glsl_parse_state
*state
)
2235 yy_reduce_print (yyvsp
, yylsp
, yyrule
, state
)
2239 struct _mesa_glsl_parse_state
*state
;
2242 int yynrhs
= yyr2
[yyrule
];
2244 unsigned long int yylno
= yyrline
[yyrule
];
2245 YYFPRINTF (stderr
, "Reducing stack by rule %d (line %lu):\n",
2247 /* The symbols being reduced. */
2248 for (yyi
= 0; yyi
< yynrhs
; yyi
++)
2250 YYFPRINTF (stderr
, " $%d = ", yyi
+ 1);
2251 yy_symbol_print (stderr
, yyrhs
[yyprhs
[yyrule
] + yyi
],
2252 &(yyvsp
[(yyi
+ 1) - (yynrhs
)])
2253 , &(yylsp
[(yyi
+ 1) - (yynrhs
)]) , state
);
2254 YYFPRINTF (stderr
, "\n");
2258 # define YY_REDUCE_PRINT(Rule) \
2261 yy_reduce_print (yyvsp, yylsp, Rule, state); \
2264 /* Nonzero means print parse trace. It is left uninitialized so that
2265 multiple parsers can coexist. */
2267 #else /* !YYDEBUG */
2268 # define YYDPRINTF(Args)
2269 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
2270 # define YY_STACK_PRINT(Bottom, Top)
2271 # define YY_REDUCE_PRINT(Rule)
2272 #endif /* !YYDEBUG */
2275 /* YYINITDEPTH -- initial size of the parser's stacks. */
2277 # define YYINITDEPTH 200
2280 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
2281 if the built-in stack extension method is used).
2283 Do not make this value too large; the results are undefined if
2284 YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
2285 evaluated with infinite-precision integer arithmetic. */
2288 # define YYMAXDEPTH 10000
2296 # if defined __GLIBC__ && defined _STRING_H
2297 # define yystrlen strlen
2299 /* Return the length of YYSTR. */
2300 #if (defined __STDC__ || defined __C99__FUNC__ \
2301 || defined __cplusplus || defined _MSC_VER)
2303 yystrlen (const char *yystr
)
2311 for (yylen
= 0; yystr
[yylen
]; yylen
++)
2319 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
2320 # define yystpcpy stpcpy
2322 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
2324 #if (defined __STDC__ || defined __C99__FUNC__ \
2325 || defined __cplusplus || defined _MSC_VER)
2327 yystpcpy (char *yydest
, const char *yysrc
)
2330 yystpcpy (yydest
, yysrc
)
2336 const char *yys
= yysrc
;
2338 while ((*yyd
++ = *yys
++) != '\0')
2347 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
2348 quotes and backslashes, so that it's suitable for yyerror. The
2349 heuristic is that double-quoting is unnecessary unless the string
2350 contains an apostrophe, a comma, or backslash (other than
2351 backslash-backslash). YYSTR is taken from yytname. If YYRES is
2352 null, do not copy; instead, return the length of what the result
2355 yytnamerr (char *yyres
, const char *yystr
)
2360 char const *yyp
= yystr
;
2367 goto do_not_strip_quotes
;
2371 goto do_not_strip_quotes
;
2384 do_not_strip_quotes
: ;
2388 return yystrlen (yystr
);
2390 return yystpcpy (yyres
, yystr
) - yyres
;
2394 /* Copy into YYRESULT an error message about the unexpected token
2395 YYCHAR while in state YYSTATE. Return the number of bytes copied,
2396 including the terminating null byte. If YYRESULT is null, do not
2397 copy anything; just return the number of bytes that would be
2398 copied. As a special case, return 0 if an ordinary "syntax error"
2399 message will do. Return YYSIZE_MAXIMUM if overflow occurs during
2400 size calculation. */
2402 yysyntax_error (char *yyresult
, int yystate
, int yychar
)
2404 int yyn
= yypact
[yystate
];
2406 if (! (YYPACT_NINF
< yyn
&& yyn
<= YYLAST
))
2410 int yytype
= YYTRANSLATE (yychar
);
2411 YYSIZE_T yysize0
= yytnamerr (0, yytname
[yytype
]);
2412 YYSIZE_T yysize
= yysize0
;
2414 int yysize_overflow
= 0;
2415 enum { YYERROR_VERBOSE_ARGS_MAXIMUM
= 5 };
2416 char const *yyarg
[YYERROR_VERBOSE_ARGS_MAXIMUM
];
2420 /* This is so xgettext sees the translatable formats that are
2421 constructed on the fly. */
2422 YY_("syntax error, unexpected %s");
2423 YY_("syntax error, unexpected %s, expecting %s");
2424 YY_("syntax error, unexpected %s, expecting %s or %s");
2425 YY_("syntax error, unexpected %s, expecting %s or %s or %s");
2426 YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
2430 static char const yyunexpected
[] = "syntax error, unexpected %s";
2431 static char const yyexpecting
[] = ", expecting %s";
2432 static char const yyor
[] = " or %s";
2433 char yyformat
[sizeof yyunexpected
2434 + sizeof yyexpecting
- 1
2435 + ((YYERROR_VERBOSE_ARGS_MAXIMUM
- 2)
2436 * (sizeof yyor
- 1))];
2437 char const *yyprefix
= yyexpecting
;
2439 /* Start YYX at -YYN if negative to avoid negative indexes in
2441 int yyxbegin
= yyn
< 0 ? -yyn
: 0;
2443 /* Stay within bounds of both yycheck and yytname. */
2444 int yychecklim
= YYLAST
- yyn
+ 1;
2445 int yyxend
= yychecklim
< YYNTOKENS
? yychecklim
: YYNTOKENS
;
2448 yyarg
[0] = yytname
[yytype
];
2449 yyfmt
= yystpcpy (yyformat
, yyunexpected
);
2451 for (yyx
= yyxbegin
; yyx
< yyxend
; ++yyx
)
2452 if (yycheck
[yyx
+ yyn
] == yyx
&& yyx
!= YYTERROR
)
2454 if (yycount
== YYERROR_VERBOSE_ARGS_MAXIMUM
)
2458 yyformat
[sizeof yyunexpected
- 1] = '\0';
2461 yyarg
[yycount
++] = yytname
[yyx
];
2462 yysize1
= yysize
+ yytnamerr (0, yytname
[yyx
]);
2463 yysize_overflow
|= (yysize1
< yysize
);
2465 yyfmt
= yystpcpy (yyfmt
, yyprefix
);
2469 yyf
= YY_(yyformat
);
2470 yysize1
= yysize
+ yystrlen (yyf
);
2471 yysize_overflow
|= (yysize1
< yysize
);
2474 if (yysize_overflow
)
2475 return YYSIZE_MAXIMUM
;
2479 /* Avoid sprintf, as that infringes on the user's name space.
2480 Don't have undefined behavior even if the translation
2481 produced a string with the wrong number of "%s"s. */
2482 char *yyp
= yyresult
;
2484 while ((*yyp
= *yyf
) != '\0')
2486 if (*yyp
== '%' && yyf
[1] == 's' && yyi
< yycount
)
2488 yyp
+= yytnamerr (yyp
, yyarg
[yyi
++]);
2501 #endif /* YYERROR_VERBOSE */
2504 /*-----------------------------------------------.
2505 | Release the memory associated to this symbol. |
2506 `-----------------------------------------------*/
2509 #if (defined __STDC__ || defined __C99__FUNC__ \
2510 || defined __cplusplus || defined _MSC_VER)
2512 yydestruct (const char *yymsg
, int yytype
, YYSTYPE
*yyvaluep
, YYLTYPE
*yylocationp
, struct _mesa_glsl_parse_state
*state
)
2515 yydestruct (yymsg
, yytype
, yyvaluep
, yylocationp
, state
)
2519 YYLTYPE
*yylocationp
;
2520 struct _mesa_glsl_parse_state
*state
;
2524 YYUSE (yylocationp
);
2529 YY_SYMBOL_PRINT (yymsg
, yytype
, yyvaluep
, yylocationp
);
2539 /* Prevent warnings from -Wmissing-prototypes. */
2540 #ifdef YYPARSE_PARAM
2541 #if defined __STDC__ || defined __cplusplus
2542 int yyparse (void *YYPARSE_PARAM
);
2546 #else /* ! YYPARSE_PARAM */
2547 #if defined __STDC__ || defined __cplusplus
2548 int yyparse (struct _mesa_glsl_parse_state
*state
);
2552 #endif /* ! YYPARSE_PARAM */
2558 /*-------------------------.
2559 | yyparse or yypush_parse. |
2560 `-------------------------*/
2562 #ifdef YYPARSE_PARAM
2563 #if (defined __STDC__ || defined __C99__FUNC__ \
2564 || defined __cplusplus || defined _MSC_VER)
2566 yyparse (void *YYPARSE_PARAM
)
2569 yyparse (YYPARSE_PARAM
)
2570 void *YYPARSE_PARAM
;
2572 #else /* ! YYPARSE_PARAM */
2573 #if (defined __STDC__ || defined __C99__FUNC__ \
2574 || defined __cplusplus || defined _MSC_VER)
2576 yyparse (struct _mesa_glsl_parse_state
*state
)
2580 struct _mesa_glsl_parse_state
*state
;
2584 /* The lookahead symbol. */
2587 /* The semantic value of the lookahead symbol. */
2590 /* Location data for the lookahead symbol. */
2593 /* Number of syntax errors so far. */
2597 /* Number of tokens to shift before error messages enabled. */
2600 /* The stacks and their tools:
2601 `yyss': related to states.
2602 `yyvs': related to semantic values.
2603 `yyls': related to locations.
2605 Refer to the stacks thru separate pointers, to allow yyoverflow
2606 to reallocate them elsewhere. */
2608 /* The state stack. */
2609 yytype_int16 yyssa
[YYINITDEPTH
];
2611 yytype_int16
*yyssp
;
2613 /* The semantic value stack. */
2614 YYSTYPE yyvsa
[YYINITDEPTH
];
2618 /* The location stack. */
2619 YYLTYPE yylsa
[YYINITDEPTH
];
2623 /* The locations where the error started and ended. */
2624 YYLTYPE yyerror_range
[3];
2626 YYSIZE_T yystacksize
;
2630 /* Lookahead token as an internal (translated) token number. */
2632 /* The variables used to return semantic value and location from the
2638 /* Buffer for error messages, and its allocated size. */
2640 char *yymsg
= yymsgbuf
;
2641 YYSIZE_T yymsg_alloc
= sizeof yymsgbuf
;
2644 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N), yylsp -= (N))
2646 /* The number of symbols on the RHS of the reduced rule.
2647 Keep to zero when no symbol should be popped. */
2654 yystacksize
= YYINITDEPTH
;
2656 YYDPRINTF ((stderr
, "Starting parse\n"));
2661 yychar
= YYEMPTY
; /* Cause a token to be read. */
2663 /* Initialize stack pointers.
2664 Waste one element of value and location stack
2665 so that they stay on the same level as the state stack.
2666 The wasted elements are never initialized. */
2671 #if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
2672 /* Initialize the default location before parsing starts. */
2673 yylloc
.first_line
= yylloc
.last_line
= 1;
2674 yylloc
.first_column
= yylloc
.last_column
= 1;
2677 /* User initialization code. */
2679 /* Line 1251 of yacc.c */
2680 #line 41 "glsl_parser.ypp"
2682 yylloc
.first_line
= 1;
2683 yylloc
.first_column
= 1;
2684 yylloc
.last_line
= 1;
2685 yylloc
.last_column
= 1;
2689 /* Line 1251 of yacc.c */
2690 #line 2691 "glsl_parser.cpp"
2695 /*------------------------------------------------------------.
2696 | yynewstate -- Push a new state, which is found in yystate. |
2697 `------------------------------------------------------------*/
2699 /* In all cases, when you get here, the value and location stacks
2700 have just been pushed. So pushing a state here evens the stacks. */
2706 if (yyss
+ yystacksize
- 1 <= yyssp
)
2708 /* Get the current used size of the three stacks, in elements. */
2709 YYSIZE_T yysize
= yyssp
- yyss
+ 1;
2713 /* Give user a chance to reallocate the stack. Use copies of
2714 these so that the &'s don't force the real ones into
2716 YYSTYPE
*yyvs1
= yyvs
;
2717 yytype_int16
*yyss1
= yyss
;
2718 YYLTYPE
*yyls1
= yyls
;
2720 /* Each stack pointer address is followed by the size of the
2721 data in use in that stack, in bytes. This used to be a
2722 conditional around just the two extra args, but that might
2723 be undefined if yyoverflow is a macro. */
2724 yyoverflow (YY_("memory exhausted"),
2725 &yyss1
, yysize
* sizeof (*yyssp
),
2726 &yyvs1
, yysize
* sizeof (*yyvsp
),
2727 &yyls1
, yysize
* sizeof (*yylsp
),
2734 #else /* no yyoverflow */
2735 # ifndef YYSTACK_RELOCATE
2736 goto yyexhaustedlab
;
2738 /* Extend the stack our own way. */
2739 if (YYMAXDEPTH
<= yystacksize
)
2740 goto yyexhaustedlab
;
2742 if (YYMAXDEPTH
< yystacksize
)
2743 yystacksize
= YYMAXDEPTH
;
2746 yytype_int16
*yyss1
= yyss
;
2747 union yyalloc
*yyptr
=
2748 (union yyalloc
*) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize
));
2750 goto yyexhaustedlab
;
2751 YYSTACK_RELOCATE (yyss_alloc
, yyss
);
2752 YYSTACK_RELOCATE (yyvs_alloc
, yyvs
);
2753 YYSTACK_RELOCATE (yyls_alloc
, yyls
);
2754 # undef YYSTACK_RELOCATE
2756 YYSTACK_FREE (yyss1
);
2759 #endif /* no yyoverflow */
2761 yyssp
= yyss
+ yysize
- 1;
2762 yyvsp
= yyvs
+ yysize
- 1;
2763 yylsp
= yyls
+ yysize
- 1;
2765 YYDPRINTF ((stderr
, "Stack size increased to %lu\n",
2766 (unsigned long int) yystacksize
));
2768 if (yyss
+ yystacksize
- 1 <= yyssp
)
2772 YYDPRINTF ((stderr
, "Entering state %d\n", yystate
));
2774 if (yystate
== YYFINAL
)
2784 /* Do appropriate processing given the current state. Read a
2785 lookahead token if we need one and don't already have one. */
2787 /* First try to decide what to do without reference to lookahead token. */
2788 yyn
= yypact
[yystate
];
2789 if (yyn
== YYPACT_NINF
)
2792 /* Not known => get a lookahead token if don't already have one. */
2794 /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
2795 if (yychar
== YYEMPTY
)
2797 YYDPRINTF ((stderr
, "Reading a token: "));
2801 if (yychar
<= YYEOF
)
2803 yychar
= yytoken
= YYEOF
;
2804 YYDPRINTF ((stderr
, "Now at end of input.\n"));
2808 yytoken
= YYTRANSLATE (yychar
);
2809 YY_SYMBOL_PRINT ("Next token is", yytoken
, &yylval
, &yylloc
);
2812 /* If the proper action on seeing token YYTOKEN is to reduce or to
2813 detect an error, take that action. */
2815 if (yyn
< 0 || YYLAST
< yyn
|| yycheck
[yyn
] != yytoken
)
2820 if (yyn
== 0 || yyn
== YYTABLE_NINF
)
2826 /* Count tokens shifted since error; after three, turn off error
2831 /* Shift the lookahead token. */
2832 YY_SYMBOL_PRINT ("Shifting", yytoken
, &yylval
, &yylloc
);
2834 /* Discard the shifted token. */
2843 /*-----------------------------------------------------------.
2844 | yydefault -- do the default action for the current state. |
2845 `-----------------------------------------------------------*/
2847 yyn
= yydefact
[yystate
];
2853 /*-----------------------------.
2854 | yyreduce -- Do a reduction. |
2855 `-----------------------------*/
2857 /* yyn is the number of a rule to reduce with. */
2860 /* If YYLEN is nonzero, implement the default value of the action:
2863 Otherwise, the following line sets YYVAL to garbage.
2864 This behavior is undocumented and Bison
2865 users should not rely upon it. Assigning to YYVAL
2866 unconditionally makes the parser a bit smaller, and it avoids a
2867 GCC warning that YYVAL may be used uninitialized. */
2868 yyval
= yyvsp
[1-yylen
];
2870 /* Default location. */
2871 YYLLOC_DEFAULT (yyloc
, (yylsp
- yylen
), yylen
);
2872 YY_REDUCE_PRINT (yyn
);
2877 /* Line 1464 of yacc.c */
2878 #line 214 "glsl_parser.ypp"
2880 _mesa_glsl_initialize_types(state
);
2886 /* Line 1464 of yacc.c */
2887 #line 223 "glsl_parser.ypp"
2889 switch ((yyvsp
[(2) - (3)].n
)) {
2893 /* FINISHME: Check against implementation support versions. */
2894 state
->language_version
= (yyvsp
[(2) - (3)].n
);
2897 _mesa_glsl_error(& (yylsp
[(2) - (3)]), state
, "Shading language version"
2898 "%u is not supported\n", (yyvsp
[(2) - (3)].n
));
2906 /* Line 1464 of yacc.c */
2907 #line 253 "glsl_parser.ypp"
2909 if (!_mesa_glsl_process_extension((yyvsp
[(2) - (5)].identifier
), & (yylsp
[(2) - (5)]), (yyvsp
[(4) - (5)].identifier
), & (yylsp
[(4) - (5)]), state
)) {
2917 /* Line 1464 of yacc.c */
2918 #line 262 "glsl_parser.ypp"
2920 /* FINISHME: The NULL test is only required because 'precision'
2921 * FINISHME: statements are not yet supported.
2923 if ((yyvsp
[(1) - (1)].node
) != NULL
)
2924 state
->translation_unit
.push_tail(& (yyvsp
[(1) - (1)].node
)->link
);
2930 /* Line 1464 of yacc.c */
2931 #line 270 "glsl_parser.ypp"
2933 /* FINISHME: The NULL test is only required because 'precision'
2934 * FINISHME: statements are not yet supported.
2936 if ((yyvsp
[(2) - (2)].node
) != NULL
)
2937 state
->translation_unit
.push_tail(& (yyvsp
[(2) - (2)].node
)->link
);
2943 /* Line 1464 of yacc.c */
2944 #line 285 "glsl_parser.ypp"
2947 (yyval
.expression
) = new(ctx
) ast_expression(ast_identifier
, NULL
, NULL
, NULL
);
2948 (yyval
.expression
)->set_location(yylloc
);
2949 (yyval
.expression
)->primary_expression
.identifier
= (yyvsp
[(1) - (1)].identifier
);
2955 /* Line 1464 of yacc.c */
2956 #line 292 "glsl_parser.ypp"
2959 (yyval
.expression
) = new(ctx
) ast_expression(ast_int_constant
, NULL
, NULL
, NULL
);
2960 (yyval
.expression
)->set_location(yylloc
);
2961 (yyval
.expression
)->primary_expression
.int_constant
= (yyvsp
[(1) - (1)].n
);
2967 /* Line 1464 of yacc.c */
2968 #line 299 "glsl_parser.ypp"
2971 (yyval
.expression
) = new(ctx
) ast_expression(ast_uint_constant
, NULL
, NULL
, NULL
);
2972 (yyval
.expression
)->set_location(yylloc
);
2973 (yyval
.expression
)->primary_expression
.uint_constant
= (yyvsp
[(1) - (1)].n
);
2979 /* Line 1464 of yacc.c */
2980 #line 306 "glsl_parser.ypp"
2983 (yyval
.expression
) = new(ctx
) ast_expression(ast_float_constant
, NULL
, NULL
, NULL
);
2984 (yyval
.expression
)->set_location(yylloc
);
2985 (yyval
.expression
)->primary_expression
.float_constant
= (yyvsp
[(1) - (1)].real
);
2991 /* Line 1464 of yacc.c */
2992 #line 313 "glsl_parser.ypp"
2995 (yyval
.expression
) = new(ctx
) ast_expression(ast_bool_constant
, NULL
, NULL
, NULL
);
2996 (yyval
.expression
)->set_location(yylloc
);
2997 (yyval
.expression
)->primary_expression
.bool_constant
= (yyvsp
[(1) - (1)].n
);
3003 /* Line 1464 of yacc.c */
3004 #line 320 "glsl_parser.ypp"
3006 (yyval
.expression
) = (yyvsp
[(2) - (3)].expression
);
3012 /* Line 1464 of yacc.c */
3013 #line 328 "glsl_parser.ypp"
3016 (yyval
.expression
) = new(ctx
) ast_expression(ast_array_index
, (yyvsp
[(1) - (4)].expression
), (yyvsp
[(3) - (4)].expression
), NULL
);
3017 (yyval
.expression
)->set_location(yylloc
);
3023 /* Line 1464 of yacc.c */
3024 #line 334 "glsl_parser.ypp"
3026 (yyval
.expression
) = (yyvsp
[(1) - (1)].expression
);
3032 /* Line 1464 of yacc.c */
3033 #line 338 "glsl_parser.ypp"
3036 (yyval
.expression
) = new(ctx
) ast_expression(ast_field_selection
, (yyvsp
[(1) - (3)].expression
), NULL
, NULL
);
3037 (yyval
.expression
)->set_location(yylloc
);
3038 (yyval
.expression
)->primary_expression
.identifier
= (yyvsp
[(3) - (3)].identifier
);
3044 /* Line 1464 of yacc.c */
3045 #line 345 "glsl_parser.ypp"
3048 (yyval
.expression
) = new(ctx
) ast_expression(ast_post_inc
, (yyvsp
[(1) - (2)].expression
), NULL
, NULL
);
3049 (yyval
.expression
)->set_location(yylloc
);
3055 /* Line 1464 of yacc.c */
3056 #line 351 "glsl_parser.ypp"
3059 (yyval
.expression
) = new(ctx
) ast_expression(ast_post_dec
, (yyvsp
[(1) - (2)].expression
), NULL
, NULL
);
3060 (yyval
.expression
)->set_location(yylloc
);
3066 /* Line 1464 of yacc.c */
3067 #line 369 "glsl_parser.ypp"
3070 (yyval
.expression
) = new(ctx
) ast_expression(ast_field_selection
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
), NULL
);
3071 (yyval
.expression
)->set_location(yylloc
);
3077 /* Line 1464 of yacc.c */
3078 #line 388 "glsl_parser.ypp"
3080 (yyval
.expression
) = (yyvsp
[(1) - (2)].expression
);
3081 (yyval
.expression
)->set_location(yylloc
);
3082 (yyval
.expression
)->expressions
.push_tail(& (yyvsp
[(2) - (2)].expression
)->link
);
3088 /* Line 1464 of yacc.c */
3089 #line 394 "glsl_parser.ypp"
3091 (yyval
.expression
) = (yyvsp
[(1) - (3)].expression
);
3092 (yyval
.expression
)->set_location(yylloc
);
3093 (yyval
.expression
)->expressions
.push_tail(& (yyvsp
[(3) - (3)].expression
)->link
);
3099 /* Line 1464 of yacc.c */
3100 #line 410 "glsl_parser.ypp"
3103 (yyval
.expression
) = new(ctx
) ast_function_expression((yyvsp
[(1) - (1)].type_specifier
));
3104 (yyval
.expression
)->set_location(yylloc
);
3110 /* Line 1464 of yacc.c */
3111 #line 416 "glsl_parser.ypp"
3114 ast_expression
*callee
= new(ctx
) ast_expression((yyvsp
[(1) - (1)].identifier
));
3115 (yyval
.expression
) = new(ctx
) ast_function_expression(callee
);
3116 (yyval
.expression
)->set_location(yylloc
);
3122 /* Line 1464 of yacc.c */
3123 #line 423 "glsl_parser.ypp"
3126 ast_expression
*callee
= new(ctx
) ast_expression((yyvsp
[(1) - (1)].identifier
));
3127 (yyval
.expression
) = new(ctx
) ast_function_expression(callee
);
3128 (yyval
.expression
)->set_location(yylloc
);
3134 /* Line 1464 of yacc.c */
3135 #line 435 "glsl_parser.ypp"
3138 (yyval
.expression
) = new(ctx
) ast_expression(ast_pre_inc
, (yyvsp
[(2) - (2)].expression
), NULL
, NULL
);
3139 (yyval
.expression
)->set_location(yylloc
);
3145 /* Line 1464 of yacc.c */
3146 #line 441 "glsl_parser.ypp"
3149 (yyval
.expression
) = new(ctx
) ast_expression(ast_pre_dec
, (yyvsp
[(2) - (2)].expression
), NULL
, NULL
);
3150 (yyval
.expression
)->set_location(yylloc
);
3156 /* Line 1464 of yacc.c */
3157 #line 447 "glsl_parser.ypp"
3160 (yyval
.expression
) = new(ctx
) ast_expression((yyvsp
[(1) - (2)].n
), (yyvsp
[(2) - (2)].expression
), NULL
, NULL
);
3161 (yyval
.expression
)->set_location(yylloc
);
3167 /* Line 1464 of yacc.c */
3168 #line 456 "glsl_parser.ypp"
3169 { (yyval
.n
) = ast_plus
; ;}
3174 /* Line 1464 of yacc.c */
3175 #line 457 "glsl_parser.ypp"
3176 { (yyval
.n
) = ast_neg
; ;}
3181 /* Line 1464 of yacc.c */
3182 #line 458 "glsl_parser.ypp"
3183 { (yyval
.n
) = ast_logic_not
; ;}
3188 /* Line 1464 of yacc.c */
3189 #line 459 "glsl_parser.ypp"
3190 { (yyval
.n
) = ast_bit_not
; ;}
3195 /* Line 1464 of yacc.c */
3196 #line 465 "glsl_parser.ypp"
3199 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_mul
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3200 (yyval
.expression
)->set_location(yylloc
);
3206 /* Line 1464 of yacc.c */
3207 #line 471 "glsl_parser.ypp"
3210 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_div
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3211 (yyval
.expression
)->set_location(yylloc
);
3217 /* Line 1464 of yacc.c */
3218 #line 477 "glsl_parser.ypp"
3221 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_mod
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3222 (yyval
.expression
)->set_location(yylloc
);
3228 /* Line 1464 of yacc.c */
3229 #line 487 "glsl_parser.ypp"
3232 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_add
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3233 (yyval
.expression
)->set_location(yylloc
);
3239 /* Line 1464 of yacc.c */
3240 #line 493 "glsl_parser.ypp"
3243 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_sub
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3244 (yyval
.expression
)->set_location(yylloc
);
3250 /* Line 1464 of yacc.c */
3251 #line 503 "glsl_parser.ypp"
3254 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_lshift
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3255 (yyval
.expression
)->set_location(yylloc
);
3261 /* Line 1464 of yacc.c */
3262 #line 509 "glsl_parser.ypp"
3265 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_rshift
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3266 (yyval
.expression
)->set_location(yylloc
);
3272 /* Line 1464 of yacc.c */
3273 #line 519 "glsl_parser.ypp"
3276 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_less
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3277 (yyval
.expression
)->set_location(yylloc
);
3283 /* Line 1464 of yacc.c */
3284 #line 525 "glsl_parser.ypp"
3287 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_greater
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3288 (yyval
.expression
)->set_location(yylloc
);
3294 /* Line 1464 of yacc.c */
3295 #line 531 "glsl_parser.ypp"
3298 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_lequal
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3299 (yyval
.expression
)->set_location(yylloc
);
3305 /* Line 1464 of yacc.c */
3306 #line 537 "glsl_parser.ypp"
3309 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_gequal
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3310 (yyval
.expression
)->set_location(yylloc
);
3316 /* Line 1464 of yacc.c */
3317 #line 547 "glsl_parser.ypp"
3320 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_equal
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3321 (yyval
.expression
)->set_location(yylloc
);
3327 /* Line 1464 of yacc.c */
3328 #line 553 "glsl_parser.ypp"
3331 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_nequal
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3332 (yyval
.expression
)->set_location(yylloc
);
3338 /* Line 1464 of yacc.c */
3339 #line 563 "glsl_parser.ypp"
3342 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_bit_or
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3343 (yyval
.expression
)->set_location(yylloc
);
3349 /* Line 1464 of yacc.c */
3350 #line 573 "glsl_parser.ypp"
3353 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_bit_xor
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3354 (yyval
.expression
)->set_location(yylloc
);
3360 /* Line 1464 of yacc.c */
3361 #line 583 "glsl_parser.ypp"
3364 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_bit_or
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3365 (yyval
.expression
)->set_location(yylloc
);
3371 /* Line 1464 of yacc.c */
3372 #line 593 "glsl_parser.ypp"
3375 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_logic_and
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3376 (yyval
.expression
)->set_location(yylloc
);
3382 /* Line 1464 of yacc.c */
3383 #line 603 "glsl_parser.ypp"
3386 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_logic_xor
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3387 (yyval
.expression
)->set_location(yylloc
);
3393 /* Line 1464 of yacc.c */
3394 #line 613 "glsl_parser.ypp"
3397 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_logic_or
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3398 (yyval
.expression
)->set_location(yylloc
);
3404 /* Line 1464 of yacc.c */
3405 #line 623 "glsl_parser.ypp"
3408 (yyval
.expression
) = new(ctx
) ast_expression(ast_conditional
, (yyvsp
[(1) - (5)].expression
), (yyvsp
[(3) - (5)].expression
), (yyvsp
[(5) - (5)].expression
));
3409 (yyval
.expression
)->set_location(yylloc
);
3415 /* Line 1464 of yacc.c */
3416 #line 633 "glsl_parser.ypp"
3419 (yyval
.expression
) = new(ctx
) ast_expression((yyvsp
[(2) - (3)].n
), (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
), NULL
);
3420 (yyval
.expression
)->set_location(yylloc
);
3426 /* Line 1464 of yacc.c */
3427 #line 641 "glsl_parser.ypp"
3428 { (yyval
.n
) = ast_assign
; ;}
3433 /* Line 1464 of yacc.c */
3434 #line 642 "glsl_parser.ypp"
3435 { (yyval
.n
) = ast_mul_assign
; ;}
3440 /* Line 1464 of yacc.c */
3441 #line 643 "glsl_parser.ypp"
3442 { (yyval
.n
) = ast_div_assign
; ;}
3447 /* Line 1464 of yacc.c */
3448 #line 644 "glsl_parser.ypp"
3449 { (yyval
.n
) = ast_mod_assign
; ;}
3454 /* Line 1464 of yacc.c */
3455 #line 645 "glsl_parser.ypp"
3456 { (yyval
.n
) = ast_add_assign
; ;}
3461 /* Line 1464 of yacc.c */
3462 #line 646 "glsl_parser.ypp"
3463 { (yyval
.n
) = ast_sub_assign
; ;}
3468 /* Line 1464 of yacc.c */
3469 #line 647 "glsl_parser.ypp"
3470 { (yyval
.n
) = ast_ls_assign
; ;}
3475 /* Line 1464 of yacc.c */
3476 #line 648 "glsl_parser.ypp"
3477 { (yyval
.n
) = ast_rs_assign
; ;}
3482 /* Line 1464 of yacc.c */
3483 #line 649 "glsl_parser.ypp"
3484 { (yyval
.n
) = ast_and_assign
; ;}
3489 /* Line 1464 of yacc.c */
3490 #line 650 "glsl_parser.ypp"
3491 { (yyval
.n
) = ast_xor_assign
; ;}
3496 /* Line 1464 of yacc.c */
3497 #line 651 "glsl_parser.ypp"
3498 { (yyval
.n
) = ast_or_assign
; ;}
3503 /* Line 1464 of yacc.c */
3504 #line 656 "glsl_parser.ypp"
3506 (yyval
.expression
) = (yyvsp
[(1) - (1)].expression
);
3512 /* Line 1464 of yacc.c */
3513 #line 660 "glsl_parser.ypp"
3516 if ((yyvsp
[(1) - (3)].expression
)->oper
!= ast_sequence
) {
3517 (yyval
.expression
) = new(ctx
) ast_expression(ast_sequence
, NULL
, NULL
, NULL
);
3518 (yyval
.expression
)->set_location(yylloc
);
3519 (yyval
.expression
)->expressions
.push_tail(& (yyvsp
[(1) - (3)].expression
)->link
);
3521 (yyval
.expression
) = (yyvsp
[(1) - (3)].expression
);
3524 (yyval
.expression
)->expressions
.push_tail(& (yyvsp
[(3) - (3)].expression
)->link
);
3530 /* Line 1464 of yacc.c */
3531 #line 680 "glsl_parser.ypp"
3533 (yyval
.node
) = (yyvsp
[(1) - (2)].function
);
3539 /* Line 1464 of yacc.c */
3540 #line 684 "glsl_parser.ypp"
3542 (yyval
.node
) = (yyvsp
[(1) - (2)].declarator_list
);
3548 /* Line 1464 of yacc.c */
3549 #line 688 "glsl_parser.ypp"
3551 if (((yyvsp
[(3) - (4)].type_specifier
)->type_specifier
!= ast_float
)
3552 && ((yyvsp
[(3) - (4)].type_specifier
)->type_specifier
!= ast_int
)) {
3553 _mesa_glsl_error(& (yylsp
[(3) - (4)]), state
, "global precision qualifier can "
3554 "only be applied to `int' or `float'\n");
3558 (yyval
.node
) = NULL
; /* FINISHME */
3564 /* Line 1464 of yacc.c */
3565 #line 711 "glsl_parser.ypp"
3567 (yyval
.function
) = (yyvsp
[(1) - (2)].function
);
3568 (yyval
.function
)->parameters
.push_tail(& (yyvsp
[(2) - (2)].parameter_declarator
)->link
);
3574 /* Line 1464 of yacc.c */
3575 #line 716 "glsl_parser.ypp"
3577 (yyval
.function
) = (yyvsp
[(1) - (3)].function
);
3578 (yyval
.function
)->parameters
.push_tail(& (yyvsp
[(3) - (3)].parameter_declarator
)->link
);
3584 /* Line 1464 of yacc.c */
3585 #line 724 "glsl_parser.ypp"
3588 (yyval
.function
) = new(ctx
) ast_function();
3589 (yyval
.function
)->set_location(yylloc
);
3590 (yyval
.function
)->return_type
= (yyvsp
[(1) - (3)].fully_specified_type
);
3591 (yyval
.function
)->identifier
= (yyvsp
[(2) - (3)].identifier
);
3597 /* Line 1464 of yacc.c */
3598 #line 735 "glsl_parser.ypp"
3601 (yyval
.parameter_declarator
) = new(ctx
) ast_parameter_declarator();
3602 (yyval
.parameter_declarator
)->set_location(yylloc
);
3603 (yyval
.parameter_declarator
)->type
= new(ctx
) ast_fully_specified_type();
3604 (yyval
.parameter_declarator
)->type
->set_location(yylloc
);
3605 (yyval
.parameter_declarator
)->type
->specifier
= (yyvsp
[(1) - (2)].type_specifier
);
3606 (yyval
.parameter_declarator
)->identifier
= (yyvsp
[(2) - (2)].identifier
);
3612 /* Line 1464 of yacc.c */
3613 #line 745 "glsl_parser.ypp"
3616 (yyval
.parameter_declarator
) = new(ctx
) ast_parameter_declarator();
3617 (yyval
.parameter_declarator
)->set_location(yylloc
);
3618 (yyval
.parameter_declarator
)->type
= new(ctx
) ast_fully_specified_type();
3619 (yyval
.parameter_declarator
)->type
->set_location(yylloc
);
3620 (yyval
.parameter_declarator
)->type
->specifier
= (yyvsp
[(1) - (5)].type_specifier
);
3621 (yyval
.parameter_declarator
)->identifier
= (yyvsp
[(2) - (5)].identifier
);
3622 (yyval
.parameter_declarator
)->is_array
= true;
3623 (yyval
.parameter_declarator
)->array_size
= (yyvsp
[(4) - (5)].expression
);
3629 /* Line 1464 of yacc.c */
3630 #line 760 "glsl_parser.ypp"
3632 (yyvsp
[(1) - (3)].type_qualifier
).i
|= (yyvsp
[(2) - (3)].type_qualifier
).i
;
3634 (yyval
.parameter_declarator
) = (yyvsp
[(3) - (3)].parameter_declarator
);
3635 (yyval
.parameter_declarator
)->type
->qualifier
= (yyvsp
[(1) - (3)].type_qualifier
).q
;
3641 /* Line 1464 of yacc.c */
3642 #line 767 "glsl_parser.ypp"
3644 (yyval
.parameter_declarator
) = (yyvsp
[(2) - (2)].parameter_declarator
);
3645 (yyval
.parameter_declarator
)->type
->qualifier
= (yyvsp
[(1) - (2)].type_qualifier
).q
;
3651 /* Line 1464 of yacc.c */
3652 #line 772 "glsl_parser.ypp"
3655 (yyvsp
[(1) - (3)].type_qualifier
).i
|= (yyvsp
[(2) - (3)].type_qualifier
).i
;
3657 (yyval
.parameter_declarator
) = new(ctx
) ast_parameter_declarator();
3658 (yyval
.parameter_declarator
)->set_location(yylloc
);
3659 (yyval
.parameter_declarator
)->type
= new(ctx
) ast_fully_specified_type();
3660 (yyval
.parameter_declarator
)->type
->qualifier
= (yyvsp
[(1) - (3)].type_qualifier
).q
;
3661 (yyval
.parameter_declarator
)->type
->specifier
= (yyvsp
[(3) - (3)].type_specifier
);
3667 /* Line 1464 of yacc.c */
3668 #line 783 "glsl_parser.ypp"
3671 (yyval
.parameter_declarator
) = new(ctx
) ast_parameter_declarator();
3672 (yyval
.parameter_declarator
)->set_location(yylloc
);
3673 (yyval
.parameter_declarator
)->type
= new(ctx
) ast_fully_specified_type();
3674 (yyval
.parameter_declarator
)->type
->qualifier
= (yyvsp
[(1) - (2)].type_qualifier
).q
;
3675 (yyval
.parameter_declarator
)->type
->specifier
= (yyvsp
[(2) - (2)].type_specifier
);
3681 /* Line 1464 of yacc.c */
3682 #line 794 "glsl_parser.ypp"
3683 { (yyval
.type_qualifier
).i
= 0; ;}
3688 /* Line 1464 of yacc.c */
3689 #line 795 "glsl_parser.ypp"
3690 { (yyval
.type_qualifier
).i
= 0; (yyval
.type_qualifier
).q
.in
= 1; ;}
3695 /* Line 1464 of yacc.c */
3696 #line 796 "glsl_parser.ypp"
3697 { (yyval
.type_qualifier
).i
= 0; (yyval
.type_qualifier
).q
.out
= 1; ;}
3702 /* Line 1464 of yacc.c */
3703 #line 797 "glsl_parser.ypp"
3704 { (yyval
.type_qualifier
).i
= 0; (yyval
.type_qualifier
).q
.in
= 1; (yyval
.type_qualifier
).q
.out
= 1; ;}
3709 /* Line 1464 of yacc.c */
3710 #line 807 "glsl_parser.ypp"
3713 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(3) - (3)].identifier
), false, NULL
, NULL
);
3714 decl
->set_location(yylloc
);
3716 (yyval
.declarator_list
) = (yyvsp
[(1) - (3)].declarator_list
);
3717 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3723 /* Line 1464 of yacc.c */
3724 #line 816 "glsl_parser.ypp"
3727 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(3) - (5)].identifier
), true, NULL
, NULL
);
3728 decl
->set_location(yylloc
);
3730 (yyval
.declarator_list
) = (yyvsp
[(1) - (5)].declarator_list
);
3731 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3737 /* Line 1464 of yacc.c */
3738 #line 825 "glsl_parser.ypp"
3741 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(3) - (6)].identifier
), true, (yyvsp
[(5) - (6)].expression
), NULL
);
3742 decl
->set_location(yylloc
);
3744 (yyval
.declarator_list
) = (yyvsp
[(1) - (6)].declarator_list
);
3745 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3751 /* Line 1464 of yacc.c */
3752 #line 834 "glsl_parser.ypp"
3755 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(3) - (7)].identifier
), true, NULL
, (yyvsp
[(7) - (7)].expression
));
3756 decl
->set_location(yylloc
);
3758 (yyval
.declarator_list
) = (yyvsp
[(1) - (7)].declarator_list
);
3759 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3765 /* Line 1464 of yacc.c */
3766 #line 843 "glsl_parser.ypp"
3769 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(3) - (8)].identifier
), true, (yyvsp
[(5) - (8)].expression
), (yyvsp
[(8) - (8)].expression
));
3770 decl
->set_location(yylloc
);
3772 (yyval
.declarator_list
) = (yyvsp
[(1) - (8)].declarator_list
);
3773 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3779 /* Line 1464 of yacc.c */
3780 #line 852 "glsl_parser.ypp"
3783 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(3) - (5)].identifier
), false, NULL
, (yyvsp
[(5) - (5)].expression
));
3784 decl
->set_location(yylloc
);
3786 (yyval
.declarator_list
) = (yyvsp
[(1) - (5)].declarator_list
);
3787 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3793 /* Line 1464 of yacc.c */
3794 #line 865 "glsl_parser.ypp"
3797 if ((yyvsp
[(1) - (1)].fully_specified_type
)->specifier
->type_specifier
!= ast_struct
) {
3798 _mesa_glsl_error(& (yylsp
[(1) - (1)]), state
, "empty declaration list\n");
3801 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list((yyvsp
[(1) - (1)].fully_specified_type
));
3802 (yyval
.declarator_list
)->set_location(yylloc
);
3809 /* Line 1464 of yacc.c */
3810 #line 876 "glsl_parser.ypp"
3813 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(2) - (2)].identifier
), false, NULL
, NULL
);
3815 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list((yyvsp
[(1) - (2)].fully_specified_type
));
3816 (yyval
.declarator_list
)->set_location(yylloc
);
3817 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3823 /* Line 1464 of yacc.c */
3824 #line 885 "glsl_parser.ypp"
3827 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(2) - (4)].identifier
), true, NULL
, NULL
);
3829 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list((yyvsp
[(1) - (4)].fully_specified_type
));
3830 (yyval
.declarator_list
)->set_location(yylloc
);
3831 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3837 /* Line 1464 of yacc.c */
3838 #line 894 "glsl_parser.ypp"
3841 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(2) - (5)].identifier
), true, (yyvsp
[(4) - (5)].expression
), NULL
);
3843 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list((yyvsp
[(1) - (5)].fully_specified_type
));
3844 (yyval
.declarator_list
)->set_location(yylloc
);
3845 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3851 /* Line 1464 of yacc.c */
3852 #line 903 "glsl_parser.ypp"
3855 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(2) - (6)].identifier
), true, NULL
, (yyvsp
[(6) - (6)].expression
));
3857 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list((yyvsp
[(1) - (6)].fully_specified_type
));
3858 (yyval
.declarator_list
)->set_location(yylloc
);
3859 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3865 /* Line 1464 of yacc.c */
3866 #line 912 "glsl_parser.ypp"
3869 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(2) - (7)].identifier
), true, (yyvsp
[(4) - (7)].expression
), (yyvsp
[(7) - (7)].expression
));
3871 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list((yyvsp
[(1) - (7)].fully_specified_type
));
3872 (yyval
.declarator_list
)->set_location(yylloc
);
3873 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3879 /* Line 1464 of yacc.c */
3880 #line 921 "glsl_parser.ypp"
3883 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(2) - (4)].identifier
), false, NULL
, (yyvsp
[(4) - (4)].expression
));
3885 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list((yyvsp
[(1) - (4)].fully_specified_type
));
3886 (yyval
.declarator_list
)->set_location(yylloc
);
3887 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3893 /* Line 1464 of yacc.c */
3894 #line 930 "glsl_parser.ypp"
3897 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(2) - (2)].identifier
), false, NULL
, NULL
);
3899 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list(NULL
);
3900 (yyval
.declarator_list
)->set_location(yylloc
);
3901 (yyval
.declarator_list
)->invariant
= true;
3903 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3909 /* Line 1464 of yacc.c */
3910 #line 944 "glsl_parser.ypp"
3913 (yyval
.fully_specified_type
) = new(ctx
) ast_fully_specified_type();
3914 (yyval
.fully_specified_type
)->set_location(yylloc
);
3915 (yyval
.fully_specified_type
)->specifier
= (yyvsp
[(1) - (1)].type_specifier
);
3921 /* Line 1464 of yacc.c */
3922 #line 951 "glsl_parser.ypp"
3925 (yyval
.fully_specified_type
) = new(ctx
) ast_fully_specified_type();
3926 (yyval
.fully_specified_type
)->set_location(yylloc
);
3927 (yyval
.fully_specified_type
)->qualifier
= (yyvsp
[(1) - (2)].type_qualifier
).q
;
3928 (yyval
.fully_specified_type
)->specifier
= (yyvsp
[(2) - (2)].type_specifier
);
3934 /* Line 1464 of yacc.c */
3935 #line 961 "glsl_parser.ypp"
3936 { (yyval
.type_qualifier
).i
= 0; ;}
3941 /* Line 1464 of yacc.c */
3942 #line 967 "glsl_parser.ypp"
3944 (yyval
.type_qualifier
) = (yyvsp
[(3) - (4)].type_qualifier
);
3950 /* Line 1464 of yacc.c */
3951 #line 975 "glsl_parser.ypp"
3953 (yyval
.type_qualifier
).i
= (yyvsp
[(1) - (3)].type_qualifier
).i
| (yyvsp
[(3) - (3)].type_qualifier
).i
;
3959 /* Line 1464 of yacc.c */
3960 #line 982 "glsl_parser.ypp"
3962 (yyval
.type_qualifier
).i
= 0;
3964 if (state
->ARB_fragment_coord_conventions_enable
) {
3965 bool got_one
= false;
3967 if (strcmp((yyvsp
[(1) - (1)].identifier
), "origin_upper_left") == 0) {
3969 (yyval
.type_qualifier
).q
.origin_upper_left
= 1;
3970 } else if (strcmp((yyvsp
[(1) - (1)].identifier
), "pixel_center_integer") == 0) {
3972 (yyval
.type_qualifier
).q
.pixel_center_integer
= 1;
3975 if (state
->ARB_fragment_coord_conventions_warn
&& got_one
) {
3976 _mesa_glsl_warning(& (yylsp
[(1) - (1)]), state
,
3977 "GL_ARB_fragment_coord_conventions layout "
3978 "identifier `%s' used\n", (yyvsp
[(1) - (1)].identifier
));
3982 /* If the identifier didn't match any known layout identifiers,
3985 if ((yyval
.type_qualifier
).i
== 0) {
3986 _mesa_glsl_error(& (yylsp
[(1) - (1)]), state
, "unrecognized layout identifier "
3987 "`%s'\n", (yyvsp
[(1) - (1)].identifier
));
3995 /* Line 1464 of yacc.c */
3996 #line 1015 "glsl_parser.ypp"
3997 { (yyval
.type_qualifier
).i
= 0; (yyval
.type_qualifier
).q
.smooth
= 1; ;}
4002 /* Line 1464 of yacc.c */
4003 #line 1016 "glsl_parser.ypp"
4004 { (yyval
.type_qualifier
).i
= 0; (yyval
.type_qualifier
).q
.flat
= 1; ;}
4009 /* Line 1464 of yacc.c */
4010 #line 1017 "glsl_parser.ypp"
4011 { (yyval
.type_qualifier
).i
= 0; (yyval
.type_qualifier
).q
.noperspective
= 1; ;}
4016 /* Line 1464 of yacc.c */
4017 #line 1021 "glsl_parser.ypp"
4018 { (yyval
.type_qualifier
).i
= 0; (yyval
.type_qualifier
).q
.constant
= 1; ;}
4023 /* Line 1464 of yacc.c */
4024 #line 1027 "glsl_parser.ypp"
4026 (yyval
.type_qualifier
).i
= (yyvsp
[(1) - (2)].type_qualifier
).i
| (yyvsp
[(2) - (2)].type_qualifier
).i
;
4032 /* Line 1464 of yacc.c */
4033 #line 1031 "glsl_parser.ypp"
4035 (yyval
.type_qualifier
) = (yyvsp
[(2) - (2)].type_qualifier
);
4036 (yyval
.type_qualifier
).q
.invariant
= 1;
4042 /* Line 1464 of yacc.c */
4043 #line 1038 "glsl_parser.ypp"
4044 { (yyval
.type_qualifier
).i
= 0; (yyval
.type_qualifier
).q
.constant
= 1; ;}
4049 /* Line 1464 of yacc.c */
4050 #line 1039 "glsl_parser.ypp"
4051 { (yyval
.type_qualifier
).i
= 0; (yyval
.type_qualifier
).q
.attribute
= 1; ;}
4056 /* Line 1464 of yacc.c */
4057 #line 1040 "glsl_parser.ypp"
4058 { (yyval
.type_qualifier
).i
= (yyvsp
[(1) - (2)].type_qualifier
).i
; (yyval
.type_qualifier
).q
.varying
= 1; ;}
4063 /* Line 1464 of yacc.c */
4064 #line 1041 "glsl_parser.ypp"
4065 { (yyval
.type_qualifier
).i
= 0; (yyval
.type_qualifier
).q
.centroid
= 1; (yyval
.type_qualifier
).q
.varying
= 1; ;}
4070 /* Line 1464 of yacc.c */
4071 #line 1042 "glsl_parser.ypp"
4072 { (yyval
.type_qualifier
).i
= 0; (yyval
.type_qualifier
).q
.in
= 1; ;}
4077 /* Line 1464 of yacc.c */
4078 #line 1043 "glsl_parser.ypp"
4079 { (yyval
.type_qualifier
).i
= 0; (yyval
.type_qualifier
).q
.out
= 1; ;}
4084 /* Line 1464 of yacc.c */
4085 #line 1044 "glsl_parser.ypp"
4086 { (yyval
.type_qualifier
).i
= 0; (yyval
.type_qualifier
).q
.centroid
= 1; (yyval
.type_qualifier
).q
.in
= 1; ;}
4091 /* Line 1464 of yacc.c */
4092 #line 1045 "glsl_parser.ypp"
4093 { (yyval
.type_qualifier
).i
= 0; (yyval
.type_qualifier
).q
.centroid
= 1; (yyval
.type_qualifier
).q
.out
= 1; ;}
4098 /* Line 1464 of yacc.c */
4099 #line 1046 "glsl_parser.ypp"
4100 { (yyval
.type_qualifier
).i
= 0; (yyval
.type_qualifier
).q
.uniform
= 1; ;}
4105 /* Line 1464 of yacc.c */
4106 #line 1052 "glsl_parser.ypp"
4108 (yyval
.type_specifier
) = (yyvsp
[(2) - (2)].type_specifier
);
4109 (yyval
.type_specifier
)->precision
= (yyvsp
[(1) - (2)].n
);
4115 /* Line 1464 of yacc.c */
4116 #line 1061 "glsl_parser.ypp"
4118 (yyval
.type_specifier
) = (yyvsp
[(1) - (3)].type_specifier
);
4119 (yyval
.type_specifier
)->is_array
= true;
4120 (yyval
.type_specifier
)->array_size
= NULL
;
4126 /* Line 1464 of yacc.c */
4127 #line 1067 "glsl_parser.ypp"
4129 (yyval
.type_specifier
) = (yyvsp
[(1) - (4)].type_specifier
);
4130 (yyval
.type_specifier
)->is_array
= true;
4131 (yyval
.type_specifier
)->array_size
= (yyvsp
[(3) - (4)].expression
);
4137 /* Line 1464 of yacc.c */
4138 #line 1076 "glsl_parser.ypp"
4141 (yyval
.type_specifier
) = new(ctx
) ast_type_specifier((yyvsp
[(1) - (1)].n
));
4142 (yyval
.type_specifier
)->set_location(yylloc
);
4148 /* Line 1464 of yacc.c */
4149 #line 1082 "glsl_parser.ypp"
4152 (yyval
.type_specifier
) = new(ctx
) ast_type_specifier((yyvsp
[(1) - (1)].struct_specifier
));
4153 (yyval
.type_specifier
)->set_location(yylloc
);
4159 /* Line 1464 of yacc.c */
4160 #line 1088 "glsl_parser.ypp"
4163 (yyval
.type_specifier
) = new(ctx
) ast_type_specifier((yyvsp
[(1) - (1)].identifier
));
4164 (yyval
.type_specifier
)->set_location(yylloc
);
4170 /* Line 1464 of yacc.c */
4171 #line 1096 "glsl_parser.ypp"
4172 { (yyval
.n
) = ast_void
; ;}
4177 /* Line 1464 of yacc.c */
4178 #line 1097 "glsl_parser.ypp"
4179 { (yyval
.n
) = ast_float
; ;}
4184 /* Line 1464 of yacc.c */
4185 #line 1098 "glsl_parser.ypp"
4186 { (yyval
.n
) = ast_int
; ;}
4191 /* Line 1464 of yacc.c */
4192 #line 1099 "glsl_parser.ypp"
4193 { (yyval
.n
) = ast_uint
; ;}
4198 /* Line 1464 of yacc.c */
4199 #line 1100 "glsl_parser.ypp"
4200 { (yyval
.n
) = ast_bool
; ;}
4205 /* Line 1464 of yacc.c */
4206 #line 1101 "glsl_parser.ypp"
4207 { (yyval
.n
) = ast_vec2
; ;}
4212 /* Line 1464 of yacc.c */
4213 #line 1102 "glsl_parser.ypp"
4214 { (yyval
.n
) = ast_vec3
; ;}
4219 /* Line 1464 of yacc.c */
4220 #line 1103 "glsl_parser.ypp"
4221 { (yyval
.n
) = ast_vec4
; ;}
4226 /* Line 1464 of yacc.c */
4227 #line 1104 "glsl_parser.ypp"
4228 { (yyval
.n
) = ast_bvec2
; ;}
4233 /* Line 1464 of yacc.c */
4234 #line 1105 "glsl_parser.ypp"
4235 { (yyval
.n
) = ast_bvec3
; ;}
4240 /* Line 1464 of yacc.c */
4241 #line 1106 "glsl_parser.ypp"
4242 { (yyval
.n
) = ast_bvec4
; ;}
4247 /* Line 1464 of yacc.c */
4248 #line 1107 "glsl_parser.ypp"
4249 { (yyval
.n
) = ast_ivec2
; ;}
4254 /* Line 1464 of yacc.c */
4255 #line 1108 "glsl_parser.ypp"
4256 { (yyval
.n
) = ast_ivec3
; ;}
4261 /* Line 1464 of yacc.c */
4262 #line 1109 "glsl_parser.ypp"
4263 { (yyval
.n
) = ast_ivec4
; ;}
4268 /* Line 1464 of yacc.c */
4269 #line 1110 "glsl_parser.ypp"
4270 { (yyval
.n
) = ast_uvec2
; ;}
4275 /* Line 1464 of yacc.c */
4276 #line 1111 "glsl_parser.ypp"
4277 { (yyval
.n
) = ast_uvec3
; ;}
4282 /* Line 1464 of yacc.c */
4283 #line 1112 "glsl_parser.ypp"
4284 { (yyval
.n
) = ast_uvec4
; ;}
4289 /* Line 1464 of yacc.c */
4290 #line 1113 "glsl_parser.ypp"
4291 { (yyval
.n
) = ast_mat2
; ;}
4296 /* Line 1464 of yacc.c */
4297 #line 1114 "glsl_parser.ypp"
4298 { (yyval
.n
) = ast_mat2x3
; ;}
4303 /* Line 1464 of yacc.c */
4304 #line 1115 "glsl_parser.ypp"
4305 { (yyval
.n
) = ast_mat2x4
; ;}
4310 /* Line 1464 of yacc.c */
4311 #line 1116 "glsl_parser.ypp"
4312 { (yyval
.n
) = ast_mat3x2
; ;}
4317 /* Line 1464 of yacc.c */
4318 #line 1117 "glsl_parser.ypp"
4319 { (yyval
.n
) = ast_mat3
; ;}
4324 /* Line 1464 of yacc.c */
4325 #line 1118 "glsl_parser.ypp"
4326 { (yyval
.n
) = ast_mat3x4
; ;}
4331 /* Line 1464 of yacc.c */
4332 #line 1119 "glsl_parser.ypp"
4333 { (yyval
.n
) = ast_mat4x2
; ;}
4338 /* Line 1464 of yacc.c */
4339 #line 1120 "glsl_parser.ypp"
4340 { (yyval
.n
) = ast_mat4x3
; ;}
4345 /* Line 1464 of yacc.c */
4346 #line 1121 "glsl_parser.ypp"
4347 { (yyval
.n
) = ast_mat4
; ;}
4352 /* Line 1464 of yacc.c */
4353 #line 1122 "glsl_parser.ypp"
4354 { (yyval
.n
) = ast_sampler1d
; ;}
4359 /* Line 1464 of yacc.c */
4360 #line 1123 "glsl_parser.ypp"
4361 { (yyval
.n
) = ast_sampler2d
; ;}
4366 /* Line 1464 of yacc.c */
4367 #line 1124 "glsl_parser.ypp"
4368 { (yyval
.n
) = ast_sampler2drect
; ;}
4373 /* Line 1464 of yacc.c */
4374 #line 1125 "glsl_parser.ypp"
4375 { (yyval
.n
) = ast_sampler3d
; ;}
4380 /* Line 1464 of yacc.c */
4381 #line 1126 "glsl_parser.ypp"
4382 { (yyval
.n
) = ast_samplercube
; ;}
4387 /* Line 1464 of yacc.c */
4388 #line 1127 "glsl_parser.ypp"
4389 { (yyval
.n
) = ast_sampler1dshadow
; ;}
4394 /* Line 1464 of yacc.c */
4395 #line 1128 "glsl_parser.ypp"
4396 { (yyval
.n
) = ast_sampler2dshadow
; ;}
4401 /* Line 1464 of yacc.c */
4402 #line 1129 "glsl_parser.ypp"
4403 { (yyval
.n
) = ast_sampler2drectshadow
; ;}
4408 /* Line 1464 of yacc.c */
4409 #line 1130 "glsl_parser.ypp"
4410 { (yyval
.n
) = ast_samplercubeshadow
; ;}
4415 /* Line 1464 of yacc.c */
4416 #line 1131 "glsl_parser.ypp"
4417 { (yyval
.n
) = ast_sampler1darray
; ;}
4422 /* Line 1464 of yacc.c */
4423 #line 1132 "glsl_parser.ypp"
4424 { (yyval
.n
) = ast_sampler2darray
; ;}
4429 /* Line 1464 of yacc.c */
4430 #line 1133 "glsl_parser.ypp"
4431 { (yyval
.n
) = ast_sampler1darrayshadow
; ;}
4436 /* Line 1464 of yacc.c */
4437 #line 1134 "glsl_parser.ypp"
4438 { (yyval
.n
) = ast_sampler2darrayshadow
; ;}
4443 /* Line 1464 of yacc.c */
4444 #line 1135 "glsl_parser.ypp"
4445 { (yyval
.n
) = ast_isampler1d
; ;}
4450 /* Line 1464 of yacc.c */
4451 #line 1136 "glsl_parser.ypp"
4452 { (yyval
.n
) = ast_isampler2d
; ;}
4457 /* Line 1464 of yacc.c */
4458 #line 1137 "glsl_parser.ypp"
4459 { (yyval
.n
) = ast_isampler3d
; ;}
4464 /* Line 1464 of yacc.c */
4465 #line 1138 "glsl_parser.ypp"
4466 { (yyval
.n
) = ast_isamplercube
; ;}
4471 /* Line 1464 of yacc.c */
4472 #line 1139 "glsl_parser.ypp"
4473 { (yyval
.n
) = ast_isampler1darray
; ;}
4478 /* Line 1464 of yacc.c */
4479 #line 1140 "glsl_parser.ypp"
4480 { (yyval
.n
) = ast_isampler2darray
; ;}
4485 /* Line 1464 of yacc.c */
4486 #line 1141 "glsl_parser.ypp"
4487 { (yyval
.n
) = ast_usampler1d
; ;}
4492 /* Line 1464 of yacc.c */
4493 #line 1142 "glsl_parser.ypp"
4494 { (yyval
.n
) = ast_usampler2d
; ;}
4499 /* Line 1464 of yacc.c */
4500 #line 1143 "glsl_parser.ypp"
4501 { (yyval
.n
) = ast_usampler3d
; ;}
4506 /* Line 1464 of yacc.c */
4507 #line 1144 "glsl_parser.ypp"
4508 { (yyval
.n
) = ast_usamplercube
; ;}
4513 /* Line 1464 of yacc.c */
4514 #line 1145 "glsl_parser.ypp"
4515 { (yyval
.n
) = ast_usampler1darray
; ;}
4520 /* Line 1464 of yacc.c */
4521 #line 1146 "glsl_parser.ypp"
4522 { (yyval
.n
) = ast_usampler2darray
; ;}
4527 /* Line 1464 of yacc.c */
4528 #line 1150 "glsl_parser.ypp"
4530 if (state
->language_version
< 130)
4531 _mesa_glsl_error(& (yylsp
[(1) - (1)]), state
,
4532 "precision qualifier forbidden "
4533 "in GLSL %d.%d (1.30 or later "
4535 state
->language_version
/ 100,
4536 state
->language_version
% 100);
4538 (yyval
.n
) = ast_precision_high
;
4544 /* Line 1464 of yacc.c */
4545 #line 1161 "glsl_parser.ypp"
4547 if (state
->language_version
< 130)
4548 _mesa_glsl_error(& (yylsp
[(1) - (1)]), state
,
4549 "precision qualifier forbidden "
4550 "in GLSL %d.%d (1.30 or later "
4552 state
->language_version
/ 100,
4553 state
->language_version
% 100);
4555 (yyval
.n
) = ast_precision_medium
;
4561 /* Line 1464 of yacc.c */
4562 #line 1172 "glsl_parser.ypp"
4564 if (state
->language_version
< 130)
4565 _mesa_glsl_error(& (yylsp
[(1) - (1)]), state
,
4566 "precision qualifier forbidden "
4567 "in GLSL %d.%d (1.30 or later "
4569 state
->language_version
/ 100,
4570 state
->language_version
% 100);
4572 (yyval
.n
) = ast_precision_low
;
4578 /* Line 1464 of yacc.c */
4579 #line 1187 "glsl_parser.ypp"
4582 (yyval
.struct_specifier
) = new(ctx
) ast_struct_specifier((yyvsp
[(2) - (5)].identifier
), (yyvsp
[(4) - (5)].node
));
4583 (yyval
.struct_specifier
)->set_location(yylloc
);
4589 /* Line 1464 of yacc.c */
4590 #line 1193 "glsl_parser.ypp"
4593 (yyval
.struct_specifier
) = new(ctx
) ast_struct_specifier(NULL
, (yyvsp
[(3) - (4)].node
));
4594 (yyval
.struct_specifier
)->set_location(yylloc
);
4600 /* Line 1464 of yacc.c */
4601 #line 1202 "glsl_parser.ypp"
4603 (yyval
.node
) = (ast_node
*) (yyvsp
[(1) - (1)].declarator_list
);
4604 (yyvsp
[(1) - (1)].declarator_list
)->link
.self_link();
4610 /* Line 1464 of yacc.c */
4611 #line 1207 "glsl_parser.ypp"
4613 (yyval
.node
) = (ast_node
*) (yyvsp
[(1) - (2)].node
);
4614 (yyval
.node
)->link
.insert_before(& (yyvsp
[(2) - (2)].declarator_list
)->link
);
4620 /* Line 1464 of yacc.c */
4621 #line 1215 "glsl_parser.ypp"
4624 ast_fully_specified_type
*type
= new(ctx
) ast_fully_specified_type();
4625 type
->set_location(yylloc
);
4627 type
->specifier
= (yyvsp
[(1) - (3)].type_specifier
);
4628 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list(type
);
4629 (yyval
.declarator_list
)->set_location(yylloc
);
4631 (yyval
.declarator_list
)->declarations
.push_degenerate_list_at_head(& (yyvsp
[(2) - (3)].declaration
)->link
);
4637 /* Line 1464 of yacc.c */
4638 #line 1230 "glsl_parser.ypp"
4640 (yyval
.declaration
) = (yyvsp
[(1) - (1)].declaration
);
4641 (yyvsp
[(1) - (1)].declaration
)->link
.self_link();
4647 /* Line 1464 of yacc.c */
4648 #line 1235 "glsl_parser.ypp"
4650 (yyval
.declaration
) = (yyvsp
[(1) - (3)].declaration
);
4651 (yyval
.declaration
)->link
.insert_before(& (yyvsp
[(3) - (3)].declaration
)->link
);
4657 /* Line 1464 of yacc.c */
4658 #line 1243 "glsl_parser.ypp"
4661 (yyval
.declaration
) = new(ctx
) ast_declaration((yyvsp
[(1) - (1)].identifier
), false, NULL
, NULL
);
4662 (yyval
.declaration
)->set_location(yylloc
);
4668 /* Line 1464 of yacc.c */
4669 #line 1249 "glsl_parser.ypp"
4672 (yyval
.declaration
) = new(ctx
) ast_declaration((yyvsp
[(1) - (4)].identifier
), true, (yyvsp
[(3) - (4)].expression
), NULL
);
4673 (yyval
.declaration
)->set_location(yylloc
);
4679 /* Line 1464 of yacc.c */
4680 #line 1267 "glsl_parser.ypp"
4681 { (yyval
.node
) = (ast_node
*) (yyvsp
[(1) - (1)].compound_statement
); ;}
4686 /* Line 1464 of yacc.c */
4687 #line 1275 "glsl_parser.ypp"
4688 { (yyval
.node
) = NULL
; ;}
4693 /* Line 1464 of yacc.c */
4694 #line 1276 "glsl_parser.ypp"
4695 { (yyval
.node
) = NULL
; ;}
4700 /* Line 1464 of yacc.c */
4701 #line 1283 "glsl_parser.ypp"
4704 (yyval
.compound_statement
) = new(ctx
) ast_compound_statement(true, NULL
);
4705 (yyval
.compound_statement
)->set_location(yylloc
);
4711 /* Line 1464 of yacc.c */
4712 #line 1289 "glsl_parser.ypp"
4715 (yyval
.compound_statement
) = new(ctx
) ast_compound_statement(true, (yyvsp
[(2) - (3)].node
));
4716 (yyval
.compound_statement
)->set_location(yylloc
);
4722 /* Line 1464 of yacc.c */
4723 #line 1297 "glsl_parser.ypp"
4724 { (yyval
.node
) = (ast_node
*) (yyvsp
[(1) - (1)].compound_statement
); ;}
4729 /* Line 1464 of yacc.c */
4730 #line 1303 "glsl_parser.ypp"
4733 (yyval
.compound_statement
) = new(ctx
) ast_compound_statement(false, NULL
);
4734 (yyval
.compound_statement
)->set_location(yylloc
);
4740 /* Line 1464 of yacc.c */
4741 #line 1309 "glsl_parser.ypp"
4744 (yyval
.compound_statement
) = new(ctx
) ast_compound_statement(false, (yyvsp
[(2) - (3)].node
));
4745 (yyval
.compound_statement
)->set_location(yylloc
);
4751 /* Line 1464 of yacc.c */
4752 #line 1318 "glsl_parser.ypp"
4754 if ((yyvsp
[(1) - (1)].node
) == NULL
) {
4755 _mesa_glsl_error(& (yylsp
[(1) - (1)]), state
, "<nil> statement\n");
4756 assert((yyvsp
[(1) - (1)].node
) != NULL
);
4759 (yyval
.node
) = (yyvsp
[(1) - (1)].node
);
4760 (yyval
.node
)->link
.self_link();
4766 /* Line 1464 of yacc.c */
4767 #line 1328 "glsl_parser.ypp"
4769 if ((yyvsp
[(2) - (2)].node
) == NULL
) {
4770 _mesa_glsl_error(& (yylsp
[(2) - (2)]), state
, "<nil> statement\n");
4771 assert((yyvsp
[(2) - (2)].node
) != NULL
);
4773 (yyval
.node
) = (yyvsp
[(1) - (2)].node
);
4774 (yyval
.node
)->link
.insert_before(& (yyvsp
[(2) - (2)].node
)->link
);
4780 /* Line 1464 of yacc.c */
4781 #line 1340 "glsl_parser.ypp"
4784 (yyval
.node
) = new(ctx
) ast_expression_statement(NULL
);
4785 (yyval
.node
)->set_location(yylloc
);
4791 /* Line 1464 of yacc.c */
4792 #line 1346 "glsl_parser.ypp"
4795 (yyval
.node
) = new(ctx
) ast_expression_statement((yyvsp
[(1) - (2)].expression
));
4796 (yyval
.node
)->set_location(yylloc
);
4802 /* Line 1464 of yacc.c */
4803 #line 1355 "glsl_parser.ypp"
4805 (yyval
.node
) = new(state
) ast_selection_statement((yyvsp
[(3) - (5)].expression
), (yyvsp
[(5) - (5)].selection_rest_statement
).then_statement
,
4806 (yyvsp
[(5) - (5)].selection_rest_statement
).else_statement
);
4807 (yyval
.node
)->set_location(yylloc
);
4813 /* Line 1464 of yacc.c */
4814 #line 1364 "glsl_parser.ypp"
4816 (yyval
.selection_rest_statement
).then_statement
= (yyvsp
[(1) - (3)].node
);
4817 (yyval
.selection_rest_statement
).else_statement
= (yyvsp
[(3) - (3)].node
);
4823 /* Line 1464 of yacc.c */
4824 #line 1369 "glsl_parser.ypp"
4826 (yyval
.selection_rest_statement
).then_statement
= (yyvsp
[(1) - (1)].node
);
4827 (yyval
.selection_rest_statement
).else_statement
= NULL
;
4833 /* Line 1464 of yacc.c */
4834 #line 1377 "glsl_parser.ypp"
4836 (yyval
.node
) = (ast_node
*) (yyvsp
[(1) - (1)].expression
);
4842 /* Line 1464 of yacc.c */
4843 #line 1381 "glsl_parser.ypp"
4846 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(2) - (4)].identifier
), false, NULL
, (yyvsp
[(4) - (4)].expression
));
4847 ast_declarator_list
*declarator
= new(ctx
) ast_declarator_list((yyvsp
[(1) - (4)].fully_specified_type
));
4848 decl
->set_location(yylloc
);
4849 declarator
->set_location(yylloc
);
4851 declarator
->declarations
.push_tail(&decl
->link
);
4852 (yyval
.node
) = declarator
;
4858 /* Line 1464 of yacc.c */
4859 #line 1404 "glsl_parser.ypp"
4862 (yyval
.node
) = new(ctx
) ast_iteration_statement(ast_iteration_statement::ast_while
,
4863 NULL
, (yyvsp
[(3) - (5)].node
), NULL
, (yyvsp
[(5) - (5)].node
));
4864 (yyval
.node
)->set_location(yylloc
);
4870 /* Line 1464 of yacc.c */
4871 #line 1411 "glsl_parser.ypp"
4874 (yyval
.node
) = new(ctx
) ast_iteration_statement(ast_iteration_statement::ast_do_while
,
4875 NULL
, (yyvsp
[(5) - (7)].expression
), NULL
, (yyvsp
[(2) - (7)].node
));
4876 (yyval
.node
)->set_location(yylloc
);
4882 /* Line 1464 of yacc.c */
4883 #line 1418 "glsl_parser.ypp"
4886 (yyval
.node
) = new(ctx
) ast_iteration_statement(ast_iteration_statement::ast_for
,
4887 (yyvsp
[(3) - (6)].node
), (yyvsp
[(4) - (6)].for_rest_statement
).cond
, (yyvsp
[(4) - (6)].for_rest_statement
).rest
, (yyvsp
[(6) - (6)].node
));
4888 (yyval
.node
)->set_location(yylloc
);
4894 /* Line 1464 of yacc.c */
4895 #line 1434 "glsl_parser.ypp"
4897 (yyval
.node
) = NULL
;
4903 /* Line 1464 of yacc.c */
4904 #line 1441 "glsl_parser.ypp"
4906 (yyval
.for_rest_statement
).cond
= (yyvsp
[(1) - (2)].node
);
4907 (yyval
.for_rest_statement
).rest
= NULL
;
4913 /* Line 1464 of yacc.c */
4914 #line 1446 "glsl_parser.ypp"
4916 (yyval
.for_rest_statement
).cond
= (yyvsp
[(1) - (3)].node
);
4917 (yyval
.for_rest_statement
).rest
= (yyvsp
[(3) - (3)].expression
);
4923 /* Line 1464 of yacc.c */
4924 #line 1455 "glsl_parser.ypp"
4927 (yyval
.node
) = new(ctx
) ast_jump_statement(ast_jump_statement::ast_continue
, NULL
);
4928 (yyval
.node
)->set_location(yylloc
);
4934 /* Line 1464 of yacc.c */
4935 #line 1461 "glsl_parser.ypp"
4938 (yyval
.node
) = new(ctx
) ast_jump_statement(ast_jump_statement::ast_break
, NULL
);
4939 (yyval
.node
)->set_location(yylloc
);
4945 /* Line 1464 of yacc.c */
4946 #line 1467 "glsl_parser.ypp"
4949 (yyval
.node
) = new(ctx
) ast_jump_statement(ast_jump_statement::ast_return
, NULL
);
4950 (yyval
.node
)->set_location(yylloc
);
4956 /* Line 1464 of yacc.c */
4957 #line 1473 "glsl_parser.ypp"
4960 (yyval
.node
) = new(ctx
) ast_jump_statement(ast_jump_statement::ast_return
, (yyvsp
[(2) - (3)].expression
));
4961 (yyval
.node
)->set_location(yylloc
);
4967 /* Line 1464 of yacc.c */
4968 #line 1479 "glsl_parser.ypp"
4971 (yyval
.node
) = new(ctx
) ast_jump_statement(ast_jump_statement::ast_discard
, NULL
);
4972 (yyval
.node
)->set_location(yylloc
);
4978 /* Line 1464 of yacc.c */
4979 #line 1487 "glsl_parser.ypp"
4980 { (yyval
.node
) = (yyvsp
[(1) - (1)].function_definition
); ;}
4985 /* Line 1464 of yacc.c */
4986 #line 1488 "glsl_parser.ypp"
4987 { (yyval
.node
) = (yyvsp
[(1) - (1)].node
); ;}
4992 /* Line 1464 of yacc.c */
4993 #line 1489 "glsl_parser.ypp"
4994 { (yyval
.node
) = NULL
; ;}
4999 /* Line 1464 of yacc.c */
5000 #line 1494 "glsl_parser.ypp"
5003 (yyval
.function_definition
) = new(ctx
) ast_function_definition();
5004 (yyval
.function_definition
)->set_location(yylloc
);
5005 (yyval
.function_definition
)->prototype
= (yyvsp
[(1) - (2)].function
);
5006 (yyval
.function_definition
)->body
= (yyvsp
[(2) - (2)].compound_statement
);
5012 /* Line 1464 of yacc.c */
5013 #line 5014 "glsl_parser.cpp"
5016 YY_SYMBOL_PRINT ("-> $$ =", yyr1
[yyn
], &yyval
, &yyloc
);
5020 YY_STACK_PRINT (yyss
, yyssp
);
5025 /* Now `shift' the result of the reduction. Determine what state
5026 that goes to, based on the state we popped back to and the rule
5027 number reduced by. */
5031 yystate
= yypgoto
[yyn
- YYNTOKENS
] + *yyssp
;
5032 if (0 <= yystate
&& yystate
<= YYLAST
&& yycheck
[yystate
] == *yyssp
)
5033 yystate
= yytable
[yystate
];
5035 yystate
= yydefgoto
[yyn
- YYNTOKENS
];
5040 /*------------------------------------.
5041 | yyerrlab -- here on detecting error |
5042 `------------------------------------*/
5044 /* If not already recovering from an error, report this error. */
5048 #if ! YYERROR_VERBOSE
5049 yyerror (&yylloc
, state
, YY_("syntax error"));
5052 YYSIZE_T yysize
= yysyntax_error (0, yystate
, yychar
);
5053 if (yymsg_alloc
< yysize
&& yymsg_alloc
< YYSTACK_ALLOC_MAXIMUM
)
5055 YYSIZE_T yyalloc
= 2 * yysize
;
5056 if (! (yysize
<= yyalloc
&& yyalloc
<= YYSTACK_ALLOC_MAXIMUM
))
5057 yyalloc
= YYSTACK_ALLOC_MAXIMUM
;
5058 if (yymsg
!= yymsgbuf
)
5059 YYSTACK_FREE (yymsg
);
5060 yymsg
= (char *) YYSTACK_ALLOC (yyalloc
);
5062 yymsg_alloc
= yyalloc
;
5066 yymsg_alloc
= sizeof yymsgbuf
;
5070 if (0 < yysize
&& yysize
<= yymsg_alloc
)
5072 (void) yysyntax_error (yymsg
, yystate
, yychar
);
5073 yyerror (&yylloc
, state
, yymsg
);
5077 yyerror (&yylloc
, state
, YY_("syntax error"));
5079 goto yyexhaustedlab
;
5085 yyerror_range
[1] = yylloc
;
5087 if (yyerrstatus
== 3)
5089 /* If just tried and failed to reuse lookahead token after an
5090 error, discard it. */
5092 if (yychar
<= YYEOF
)
5094 /* Return failure if at end of input. */
5095 if (yychar
== YYEOF
)
5100 yydestruct ("Error: discarding",
5101 yytoken
, &yylval
, &yylloc
, state
);
5106 /* Else will try to reuse lookahead token after shifting the error
5111 /*---------------------------------------------------.
5112 | yyerrorlab -- error raised explicitly by YYERROR. |
5113 `---------------------------------------------------*/
5116 /* Pacify compilers like GCC when the user code never invokes
5117 YYERROR and the label yyerrorlab therefore never appears in user
5119 if (/*CONSTCOND*/ 0)
5122 yyerror_range
[1] = yylsp
[1-yylen
];
5123 /* Do not reclaim the symbols of the rule which action triggered
5127 YY_STACK_PRINT (yyss
, yyssp
);
5132 /*-------------------------------------------------------------.
5133 | yyerrlab1 -- common code for both syntax error and YYERROR. |
5134 `-------------------------------------------------------------*/
5136 yyerrstatus
= 3; /* Each real token shifted decrements this. */
5140 yyn
= yypact
[yystate
];
5141 if (yyn
!= YYPACT_NINF
)
5144 if (0 <= yyn
&& yyn
<= YYLAST
&& yycheck
[yyn
] == YYTERROR
)
5152 /* Pop the current state because it cannot handle the error token. */
5156 yyerror_range
[1] = *yylsp
;
5157 yydestruct ("Error: popping",
5158 yystos
[yystate
], yyvsp
, yylsp
, state
);
5161 YY_STACK_PRINT (yyss
, yyssp
);
5166 yyerror_range
[2] = yylloc
;
5167 /* Using YYLLOC is tempting, but would change the location of
5168 the lookahead. YYLOC is available though. */
5169 YYLLOC_DEFAULT (yyloc
, yyerror_range
, 2);
5172 /* Shift the error token. */
5173 YY_SYMBOL_PRINT ("Shifting", yystos
[yyn
], yyvsp
, yylsp
);
5179 /*-------------------------------------.
5180 | yyacceptlab -- YYACCEPT comes here. |
5181 `-------------------------------------*/
5186 /*-----------------------------------.
5187 | yyabortlab -- YYABORT comes here. |
5188 `-----------------------------------*/
5193 #if !defined(yyoverflow) || YYERROR_VERBOSE
5194 /*-------------------------------------------------.
5195 | yyexhaustedlab -- memory exhaustion comes here. |
5196 `-------------------------------------------------*/
5198 yyerror (&yylloc
, state
, YY_("memory exhausted"));
5204 if (yychar
!= YYEMPTY
)
5205 yydestruct ("Cleanup: discarding lookahead",
5206 yytoken
, &yylval
, &yylloc
, state
);
5207 /* Do not reclaim the symbols of the rule which action triggered
5208 this YYABORT or YYACCEPT. */
5210 YY_STACK_PRINT (yyss
, yyssp
);
5211 while (yyssp
!= yyss
)
5213 yydestruct ("Cleanup: popping",
5214 yystos
[*yyssp
], yyvsp
, yylsp
, state
);
5219 YYSTACK_FREE (yyss
);
5222 if (yymsg
!= yymsgbuf
)
5223 YYSTACK_FREE (yymsg
);
5225 /* Make sure YYID is used. */
5226 return YYID (yyresult
);