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,
260 PRAGMA_INVARIANT_ALL
= 375,
297 SAMPLER2DRECTSHADOW
= 412,
331 IMAGE1DARRAYSHADOW
= 446,
332 IMAGE2DARRAYSHADOW
= 447,
339 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
340 typedef union YYSTYPE
343 /* Line 214 of yacc.c */
344 #line 52 "glsl_parser.ypp"
350 struct ast_type_qualifier type_qualifier
;
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 218
623 /* YYNNTS -- Number of nonterminals. */
625 /* YYNRULES -- Number of rules. */
627 /* YYNRULES -- Number of states. */
628 #define YYNSTATES 415
630 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
632 #define YYMAXUTOK 448
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, 202, 2, 2, 2, 206, 209, 2,
644 194, 195, 204, 200, 199, 201, 198, 205, 2, 2,
645 2, 2, 2, 2, 2, 2, 2, 2, 213, 215,
646 207, 214, 208, 212, 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, 196, 2, 197, 210, 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, 216, 211, 217, 203, 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, 191, 192, 193
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, 29, 30, 33, 39, 41, 44, 46, 48, 50,
694 52, 54, 56, 60, 62, 67, 69, 73, 76, 79,
695 81, 83, 85, 89, 92, 95, 98, 100, 103, 107,
696 110, 112, 114, 116, 118, 121, 124, 127, 129, 131,
697 133, 135, 137, 141, 145, 149, 151, 155, 159, 161,
698 165, 169, 171, 175, 179, 183, 187, 189, 193, 197,
699 199, 203, 205, 209, 211, 215, 217, 221, 223, 227,
700 229, 233, 235, 241, 243, 247, 249, 251, 253, 255,
701 257, 259, 261, 263, 265, 267, 269, 271, 275, 277,
702 280, 283, 288, 291, 293, 295, 298, 302, 306, 309,
703 315, 319, 322, 326, 329, 330, 332, 334, 336, 338,
704 340, 344, 350, 357, 365, 374, 380, 382, 385, 390,
705 396, 403, 411, 416, 419, 421, 424, 429, 431, 435,
706 437, 441, 443, 445, 447, 449, 451, 453, 456, 458,
707 461, 464, 468, 470, 472, 474, 476, 479, 481, 483,
708 486, 489, 491, 493, 496, 498, 502, 507, 509, 511,
709 513, 515, 517, 519, 521, 523, 525, 527, 529, 531,
710 533, 535, 537, 539, 541, 543, 545, 547, 549, 551,
711 553, 555, 557, 559, 561, 563, 565, 567, 569, 571,
712 573, 575, 577, 579, 581, 583, 585, 587, 589, 591,
713 593, 595, 597, 599, 601, 603, 605, 607, 609, 611,
714 613, 615, 617, 619, 621, 627, 632, 634, 637, 641,
715 643, 647, 649, 654, 656, 658, 660, 662, 664, 666,
716 668, 670, 672, 674, 676, 679, 683, 685, 687, 690,
717 694, 696, 699, 701, 704, 710, 714, 716, 718, 723,
718 729, 733, 736, 742, 750, 757, 759, 761, 763, 764,
719 767, 771, 774, 777, 780, 784, 787, 789, 791, 793
722 /* YYRHS -- A `-1'-separated list of the rules' RHS. */
723 static const yytype_int16 yyrhs
[] =
725 219, 0, -1, -1, 221, 223, 220, 225, -1, -1,
726 109, 78, 113, -1, 116, 113, -1, 117, 113, -1,
727 118, 113, -1, 119, 113, -1, 120, 113, -1, -1,
728 223, 224, -1, 110, 76, 112, 76, 113, -1, 303,
729 -1, 225, 303, -1, 76, -1, 226, -1, 78, -1,
730 79, -1, 77, -1, 80, -1, 194, 253, 195, -1,
731 227, -1, 228, 196, 229, 197, -1, 230, -1, 228,
732 198, 76, -1, 228, 84, -1, 228, 85, -1, 253,
733 -1, 231, -1, 232, -1, 228, 198, 232, -1, 234,
734 195, -1, 233, 195, -1, 235, 74, -1, 235, -1,
735 235, 251, -1, 234, 199, 251, -1, 236, 194, -1,
736 274, -1, 76, -1, 81, -1, 228, -1, 84, 237,
737 -1, 85, 237, -1, 238, 237, -1, 200, -1, 201,
738 -1, 202, -1, 203, -1, 237, -1, 239, 204, 237,
739 -1, 239, 205, 237, -1, 239, 206, 237, -1, 239,
740 -1, 240, 200, 239, -1, 240, 201, 239, -1, 240,
741 -1, 241, 82, 240, -1, 241, 83, 240, -1, 241,
742 -1, 242, 207, 241, -1, 242, 208, 241, -1, 242,
743 86, 241, -1, 242, 87, 241, -1, 242, -1, 243,
744 88, 242, -1, 243, 89, 242, -1, 243, -1, 244,
745 209, 243, -1, 244, -1, 245, 210, 244, -1, 245,
746 -1, 246, 211, 245, -1, 246, -1, 247, 90, 246,
747 -1, 247, -1, 248, 92, 247, -1, 248, -1, 249,
748 91, 248, -1, 249, -1, 249, 212, 253, 213, 251,
749 -1, 250, -1, 237, 252, 251, -1, 214, -1, 93,
750 -1, 94, -1, 96, -1, 95, -1, 102, -1, 97,
751 -1, 98, -1, 99, -1, 100, -1, 101, -1, 251,
752 -1, 253, 199, 251, -1, 250, -1, 256, 215, -1,
753 264, 215, -1, 108, 278, 275, 215, -1, 257, 195,
754 -1, 259, -1, 258, -1, 259, 261, -1, 258, 199,
755 261, -1, 266, 76, 194, -1, 274, 76, -1, 274,
756 76, 196, 254, 197, -1, 271, 262, 260, -1, 262,
757 260, -1, 271, 262, 263, -1, 262, 263, -1, -1,
758 33, -1, 34, -1, 35, -1, 274, -1, 265, -1,
759 264, 199, 76, -1, 264, 199, 76, 196, 197, -1,
760 264, 199, 76, 196, 254, 197, -1, 264, 199, 76,
761 196, 197, 214, 284, -1, 264, 199, 76, 196, 254,
762 197, 214, 284, -1, 264, 199, 76, 214, 284, -1,
763 266, -1, 266, 76, -1, 266, 76, 196, 197, -1,
764 266, 76, 196, 254, 197, -1, 266, 76, 196, 197,
765 214, 284, -1, 266, 76, 196, 254, 197, 214, 284,
766 -1, 266, 76, 214, 284, -1, 103, 76, -1, 274,
767 -1, 272, 274, -1, 121, 194, 268, 195, -1, 269,
768 -1, 268, 199, 269, -1, 76, -1, 76, 214, 78,
769 -1, 40, -1, 39, -1, 38, -1, 4, -1, 273,
770 -1, 267, -1, 267, 273, -1, 270, -1, 270, 273,
771 -1, 103, 273, -1, 103, 270, 273, -1, 103, -1,
772 4, -1, 3, -1, 37, -1, 32, 37, -1, 33,
773 -1, 34, -1, 32, 33, -1, 32, 34, -1, 36,
774 -1, 275, -1, 278, 275, -1, 276, -1, 276, 196,
775 197, -1, 276, 196, 254, 197, -1, 277, -1, 279,
776 -1, 76, -1, 74, -1, 6, -1, 7, -1, 8,
777 -1, 5, -1, 29, -1, 30, -1, 31, -1, 20,
778 -1, 21, -1, 22, -1, 23, -1, 24, -1, 25,
779 -1, 26, -1, 27, -1, 28, -1, 41, -1, 42,
780 -1, 43, -1, 44, -1, 45, -1, 46, -1, 47,
781 -1, 48, -1, 49, -1, 50, -1, 51, -1, 155,
782 -1, 52, -1, 53, -1, 54, -1, 55, -1, 157,
783 -1, 56, -1, 57, -1, 58, -1, 59, -1, 60,
784 -1, 61, -1, 62, -1, 63, -1, 64, -1, 65,
785 -1, 66, -1, 67, -1, 68, -1, 69, -1, 70,
786 -1, 71, -1, 72, -1, 106, -1, 105, -1, 104,
787 -1, 73, 76, 216, 280, 217, -1, 73, 216, 280,
788 217, -1, 281, -1, 280, 281, -1, 274, 282, 215,
789 -1, 283, -1, 282, 199, 283, -1, 76, -1, 76,
790 196, 254, 197, -1, 251, -1, 255, -1, 288, -1,
791 287, -1, 285, -1, 292, -1, 293, -1, 296, -1,
792 297, -1, 298, -1, 302, -1, 216, 217, -1, 216,
793 291, 217, -1, 290, -1, 287, -1, 216, 217, -1,
794 216, 291, 217, -1, 286, -1, 291, 286, -1, 215,
795 -1, 253, 215, -1, 14, 194, 253, 195, 294, -1,
796 286, 12, 286, -1, 286, -1, 253, -1, 266, 76,
797 214, 284, -1, 17, 194, 253, 195, 288, -1, 18,
798 253, 213, -1, 19, 213, -1, 75, 194, 295, 195,
799 289, -1, 11, 286, 75, 194, 253, 195, 215, -1,
800 13, 194, 299, 301, 195, 289, -1, 292, -1, 285,
801 -1, 295, -1, -1, 300, 215, -1, 300, 215, 253,
802 -1, 10, 215, -1, 9, 215, -1, 16, 215, -1,
803 16, 253, 215, -1, 15, 215, -1, 304, -1, 255,
804 -1, 222, -1, 256, 290, -1
807 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
808 static const yytype_uint16 yyrline
[] =
810 0, 213, 213, 212, 219, 221, 261, 262, 263, 264,
811 265, 277, 279, 283, 292, 300, 311, 315, 322, 329,
812 336, 343, 350, 357, 358, 364, 368, 375, 381, 390,
813 394, 398, 399, 408, 409, 413, 414, 418, 424, 436,
814 440, 446, 453, 464, 465, 471, 477, 487, 488, 489,
815 490, 494, 495, 501, 507, 516, 517, 523, 532, 533,
816 539, 548, 549, 555, 561, 567, 576, 577, 583, 592,
817 593, 602, 603, 612, 613, 622, 623, 632, 633, 642,
818 643, 652, 653, 662, 663, 672, 673, 674, 675, 676,
819 677, 678, 679, 680, 681, 682, 686, 690, 706, 710,
820 714, 718, 727, 731, 732, 736, 741, 749, 760, 770,
821 785, 792, 797, 808, 821, 824, 829, 834, 843, 847,
822 848, 857, 866, 875, 884, 893, 906, 917, 926, 935,
823 944, 953, 962, 971, 985, 992, 1003, 1010, 1011, 1030,
824 1082, 1123, 1128, 1133, 1141, 1149, 1150, 1151, 1156, 1157,
825 1162, 1167, 1173, 1181, 1186, 1191, 1196, 1202, 1207, 1212,
826 1217, 1222, 1230, 1234, 1242, 1243, 1249, 1258, 1264, 1270,
827 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288,
828 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298,
829 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308,
830 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318,
831 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328,
832 1329, 1333, 1343, 1353, 1366, 1372, 1381, 1386, 1394, 1409,
833 1414, 1422, 1428, 1437, 1441, 1447, 1448, 1452, 1453, 1454,
834 1455, 1456, 1457, 1458, 1462, 1468, 1477, 1478, 1482, 1488,
835 1497, 1507, 1519, 1525, 1534, 1543, 1548, 1556, 1560, 1574,
836 1578, 1579, 1583, 1590, 1597, 1607, 1608, 1612, 1614, 1620,
837 1625, 1634, 1640, 1646, 1652, 1658, 1667, 1668, 1669, 1673
841 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
842 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
843 First, the terminals, then, starting at YYNTOKENS, nonterminals. */
844 static const char *const yytname
[] =
846 "$end", "error", "$undefined", "ATTRIBUTE", "CONST_TOK", "BOOL_TOK",
847 "FLOAT_TOK", "INT_TOK", "UINT_TOK", "BREAK", "CONTINUE", "DO", "ELSE",
848 "FOR", "IF", "DISCARD", "RETURN", "SWITCH", "CASE", "DEFAULT", "BVEC2",
849 "BVEC3", "BVEC4", "IVEC2", "IVEC3", "IVEC4", "UVEC2", "UVEC3", "UVEC4",
850 "VEC2", "VEC3", "VEC4", "CENTROID", "IN_TOK", "OUT_TOK", "INOUT_TOK",
851 "UNIFORM", "VARYING", "NOPERSPECTIVE", "FLAT", "SMOOTH", "MAT2X2",
852 "MAT2X3", "MAT2X4", "MAT3X2", "MAT3X3", "MAT3X4", "MAT4X2", "MAT4X3",
853 "MAT4X4", "SAMPLER1D", "SAMPLER2D", "SAMPLER3D", "SAMPLERCUBE",
854 "SAMPLER1DSHADOW", "SAMPLER2DSHADOW", "SAMPLERCUBESHADOW",
855 "SAMPLER1DARRAY", "SAMPLER2DARRAY", "SAMPLER1DARRAYSHADOW",
856 "SAMPLER2DARRAYSHADOW", "ISAMPLER1D", "ISAMPLER2D", "ISAMPLER3D",
857 "ISAMPLERCUBE", "ISAMPLER1DARRAY", "ISAMPLER2DARRAY", "USAMPLER1D",
858 "USAMPLER2D", "USAMPLER3D", "USAMPLERCUBE", "USAMPLER1DARRAY",
859 "USAMPLER2DARRAY", "STRUCT", "VOID_TOK", "WHILE", "IDENTIFIER",
860 "FLOATCONSTANT", "INTCONSTANT", "UINTCONSTANT", "BOOLCONSTANT",
861 "FIELD_SELECTION", "LEFT_OP", "RIGHT_OP", "INC_OP", "DEC_OP", "LE_OP",
862 "GE_OP", "EQ_OP", "NE_OP", "AND_OP", "OR_OP", "XOR_OP", "MUL_ASSIGN",
863 "DIV_ASSIGN", "ADD_ASSIGN", "MOD_ASSIGN", "LEFT_ASSIGN", "RIGHT_ASSIGN",
864 "AND_ASSIGN", "XOR_ASSIGN", "OR_ASSIGN", "SUB_ASSIGN", "INVARIANT",
865 "LOWP", "MEDIUMP", "HIGHP", "SUPERP", "PRECISION", "VERSION",
866 "EXTENSION", "LINE", "COLON", "EOL", "INTERFACE", "OUTPUT",
867 "PRAGMA_DEBUG_ON", "PRAGMA_DEBUG_OFF", "PRAGMA_OPTIMIZE_ON",
868 "PRAGMA_OPTIMIZE_OFF", "PRAGMA_INVARIANT_ALL", "LAYOUT_TOK", "ASM",
869 "CLASS", "UNION", "ENUM", "TYPEDEF", "TEMPLATE", "THIS", "PACKED_TOK",
870 "GOTO", "INLINE_TOK", "NOINLINE", "VOLATILE", "PUBLIC_TOK", "STATIC",
871 "EXTERN", "EXTERNAL", "LONG_TOK", "SHORT_TOK", "DOUBLE_TOK", "HALF",
872 "FIXED_TOK", "UNSIGNED", "INPUT_TOK", "OUPTUT", "HVEC2", "HVEC3",
873 "HVEC4", "DVEC2", "DVEC3", "DVEC4", "FVEC2", "FVEC3", "FVEC4",
874 "SAMPLER2DRECT", "SAMPLER3DRECT", "SAMPLER2DRECTSHADOW", "SIZEOF",
875 "CAST", "NAMESPACE", "USING", "ERROR_TOK", "COMMON", "PARTITION",
876 "ACTIVE", "SAMPLERBUFFER", "FILTER", "IMAGE1D", "IMAGE2D", "IMAGE3D",
877 "IMAGECUBE", "IMAGE1DARRAY", "IMAGE2DARRAY", "IIMAGE1D", "IIMAGE2D",
878 "IIMAGE3D", "IIMAGECUBE", "IIMAGE1DARRAY", "IIMAGE2DARRAY", "UIMAGE1D",
879 "UIMAGE2D", "UIMAGE3D", "UIMAGECUBE", "UIMAGE1DARRAY", "UIMAGE2DARRAY",
880 "IMAGE1DSHADOW", "IMAGE2DSHADOW", "IMAGEBUFFER", "IIMAGEBUFFER",
881 "UIMAGEBUFFER", "IMAGE1DARRAYSHADOW", "IMAGE2DARRAYSHADOW", "ROW_MAJOR",
882 "'('", "')'", "'['", "']'", "'.'", "','", "'+'", "'-'", "'!'", "'~'",
883 "'*'", "'/'", "'%'", "'<'", "'>'", "'&'", "'^'", "'|'", "'?'", "':'",
884 "'='", "';'", "'{'", "'}'", "$accept", "translation_unit", "$@1",
885 "version_statement", "pragma_statement", "extension_statement_list",
886 "extension_statement", "external_declaration_list",
887 "variable_identifier", "primary_expression", "postfix_expression",
888 "integer_expression", "function_call", "function_call_or_method",
889 "function_call_generic", "function_call_header_no_parameters",
890 "function_call_header_with_parameters", "function_call_header",
891 "function_identifier", "unary_expression", "unary_operator",
892 "multiplicative_expression", "additive_expression", "shift_expression",
893 "relational_expression", "equality_expression", "and_expression",
894 "exclusive_or_expression", "inclusive_or_expression",
895 "logical_and_expression", "logical_xor_expression",
896 "logical_or_expression", "conditional_expression",
897 "assignment_expression", "assignment_operator", "expression",
898 "constant_expression", "declaration", "function_prototype",
899 "function_declarator", "function_header_with_parameters",
900 "function_header", "parameter_declarator", "parameter_declaration",
901 "parameter_qualifier", "parameter_type_specifier",
902 "init_declarator_list", "single_declaration", "fully_specified_type",
903 "layout_qualifier", "layout_qualifier_id_list", "layout_qualifier_id",
904 "interpolation_qualifier", "parameter_type_qualifier", "type_qualifier",
905 "storage_qualifier", "type_specifier", "type_specifier_no_prec",
906 "type_specifier_nonarray", "basic_type_specifier_nonarray",
907 "precision_qualifier", "struct_specifier", "struct_declaration_list",
908 "struct_declaration", "struct_declarator_list", "struct_declarator",
909 "initializer", "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, 446, 447, 448, 40, 41, 91, 93, 46, 44,
945 43, 45, 33, 126, 42, 47, 37, 60, 62, 38,
946 94, 124, 63, 58, 61, 59, 123, 125
950 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
951 static const yytype_uint16 yyr1
[] =
953 0, 218, 220, 219, 221, 221, 222, 222, 222, 222,
954 222, 223, 223, 224, 225, 225, 226, 227, 227, 227,
955 227, 227, 227, 228, 228, 228, 228, 228, 228, 229,
956 230, 231, 231, 232, 232, 233, 233, 234, 234, 235,
957 236, 236, 236, 237, 237, 237, 237, 238, 238, 238,
958 238, 239, 239, 239, 239, 240, 240, 240, 241, 241,
959 241, 242, 242, 242, 242, 242, 243, 243, 243, 244,
960 244, 245, 245, 246, 246, 247, 247, 248, 248, 249,
961 249, 250, 250, 251, 251, 252, 252, 252, 252, 252,
962 252, 252, 252, 252, 252, 252, 253, 253, 254, 255,
963 255, 255, 256, 257, 257, 258, 258, 259, 260, 260,
964 261, 261, 261, 261, 262, 262, 262, 262, 263, 264,
965 264, 264, 264, 264, 264, 264, 265, 265, 265, 265,
966 265, 265, 265, 265, 266, 266, 267, 268, 268, 269,
967 269, 270, 270, 270, 271, 272, 272, 272, 272, 272,
968 272, 272, 272, 273, 273, 273, 273, 273, 273, 273,
969 273, 273, 274, 274, 275, 275, 275, 276, 276, 276,
970 277, 277, 277, 277, 277, 277, 277, 277, 277, 277,
971 277, 277, 277, 277, 277, 277, 277, 277, 277, 277,
972 277, 277, 277, 277, 277, 277, 277, 277, 277, 277,
973 277, 277, 277, 277, 277, 277, 277, 277, 277, 277,
974 277, 277, 277, 277, 277, 277, 277, 277, 277, 277,
975 277, 278, 278, 278, 279, 279, 280, 280, 281, 282,
976 282, 283, 283, 284, 285, 286, 286, 287, 287, 287,
977 287, 287, 287, 287, 288, 288, 289, 289, 290, 290,
978 291, 291, 292, 292, 293, 294, 294, 295, 295, 296,
979 297, 297, 298, 298, 298, 299, 299, 300, 300, 301,
980 301, 302, 302, 302, 302, 302, 303, 303, 303, 304
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 2, 0, 2, 5, 1, 2, 1, 1, 1, 1,
988 1, 1, 3, 1, 4, 1, 3, 2, 2, 1,
989 1, 1, 3, 2, 2, 2, 1, 2, 3, 2,
990 1, 1, 1, 1, 2, 2, 2, 1, 1, 1,
991 1, 1, 3, 3, 3, 1, 3, 3, 1, 3,
992 3, 1, 3, 3, 3, 3, 1, 3, 3, 1,
993 3, 1, 3, 1, 3, 1, 3, 1, 3, 1,
994 3, 1, 5, 1, 3, 1, 1, 1, 1, 1,
995 1, 1, 1, 1, 1, 1, 1, 3, 1, 2,
996 2, 4, 2, 1, 1, 2, 3, 3, 2, 5,
997 3, 2, 3, 2, 0, 1, 1, 1, 1, 1,
998 3, 5, 6, 7, 8, 5, 1, 2, 4, 5,
999 6, 7, 4, 2, 1, 2, 4, 1, 3, 1,
1000 3, 1, 1, 1, 1, 1, 1, 2, 1, 2,
1001 2, 3, 1, 1, 1, 1, 2, 1, 1, 2,
1002 2, 1, 1, 2, 1, 3, 4, 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, 1,
1008 1, 1, 1, 1, 5, 4, 1, 2, 3, 1,
1009 3, 1, 4, 1, 1, 1, 1, 1, 1, 1,
1010 1, 1, 1, 1, 2, 3, 1, 1, 2, 3,
1011 1, 2, 1, 2, 5, 3, 1, 1, 4, 5,
1012 3, 2, 5, 7, 6, 1, 1, 1, 0, 2,
1013 3, 2, 2, 2, 3, 2, 1, 1, 1, 2
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, 11, 0, 1, 2, 5, 0, 0,
1022 12, 0, 154, 153, 174, 171, 172, 173, 178, 179,
1023 180, 181, 182, 183, 184, 185, 186, 175, 176, 177,
1024 0, 157, 158, 161, 155, 143, 142, 141, 187, 188,
1025 189, 190, 191, 192, 193, 194, 195, 196, 197, 199,
1026 200, 201, 202, 204, 205, 206, 207, 208, 209, 210,
1027 211, 212, 213, 214, 215, 216, 217, 218, 219, 220,
1028 0, 170, 169, 152, 223, 222, 221, 0, 0, 0,
1029 0, 0, 0, 0, 198, 203, 278, 3, 277, 0,
1030 0, 104, 114, 0, 119, 126, 146, 148, 0, 145,
1031 134, 162, 164, 167, 0, 168, 14, 276, 0, 159,
1032 160, 156, 0, 0, 133, 0, 150, 0, 6, 7,
1033 8, 9, 10, 0, 15, 99, 0, 279, 102, 114,
1034 144, 115, 116, 117, 105, 0, 114, 0, 100, 127,
1035 147, 149, 135, 0, 163, 0, 0, 0, 0, 226,
1036 151, 0, 139, 0, 137, 0, 0, 0, 0, 0,
1037 0, 0, 0, 0, 0, 0, 16, 20, 18, 19,
1038 21, 42, 0, 0, 0, 47, 48, 49, 50, 252,
1039 0, 248, 17, 23, 43, 25, 30, 31, 0, 0,
1040 36, 0, 51, 0, 55, 58, 61, 66, 69, 71,
1041 73, 75, 77, 79, 81, 83, 96, 0, 234, 0,
1042 134, 237, 250, 236, 235, 0, 238, 239, 240, 241,
1043 242, 243, 106, 111, 113, 118, 0, 120, 107, 0,
1044 0, 165, 51, 98, 0, 40, 13, 0, 231, 0,
1045 229, 225, 227, 101, 0, 136, 0, 272, 271, 0,
1046 0, 0, 275, 273, 0, 0, 0, 261, 0, 44,
1047 45, 0, 244, 0, 27, 28, 0, 0, 34, 33,
1048 0, 170, 37, 39, 86, 87, 89, 88, 91, 92,
1049 93, 94, 95, 90, 85, 0, 46, 0, 0, 0,
1050 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1051 0, 0, 0, 0, 0, 0, 0, 0, 253, 249,
1052 251, 108, 110, 112, 0, 0, 128, 0, 233, 132,
1053 166, 224, 0, 0, 228, 140, 138, 0, 266, 265,
1054 268, 0, 274, 0, 260, 152, 257, 0, 0, 22,
1055 245, 0, 29, 26, 32, 38, 84, 52, 53, 54,
1056 56, 57, 59, 60, 64, 65, 62, 63, 67, 68,
1057 70, 72, 74, 76, 78, 80, 0, 97, 0, 121,
1058 0, 125, 0, 129, 0, 230, 0, 267, 0, 0,
1059 0, 0, 0, 0, 24, 0, 0, 0, 122, 130,
1060 0, 232, 0, 269, 0, 256, 254, 259, 0, 247,
1061 262, 246, 82, 109, 123, 0, 131, 0, 270, 264,
1062 0, 258, 124, 263, 255
1065 /* YYDEFGOTO[NTERM-NUM]. */
1066 static const yytype_int16 yydefgoto
[] =
1068 -1, 2, 9, 3, 86, 6, 10, 87, 182, 183,
1069 184, 341, 185, 186, 187, 188, 189, 190, 191, 192,
1070 193, 194, 195, 196, 197, 198, 199, 200, 201, 202,
1071 203, 204, 205, 206, 285, 207, 234, 208, 209, 90,
1072 91, 92, 223, 134, 135, 224, 93, 94, 95, 96,
1073 153, 154, 97, 136, 98, 99, 235, 101, 102, 103,
1074 104, 105, 148, 149, 239, 240, 319, 211, 212, 213,
1075 214, 400, 401, 215, 216, 217, 396, 338, 218, 219,
1076 220, 330, 378, 379, 221, 106, 107
1079 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1081 #define YYPACT_NINF -321
1082 static const yytype_int16 yypact
[] =
1084 -86, -57, 45, -321, -56, -321, -50, -321, -10, 3320,
1085 -321, -26, -321, -321, -321, -321, -321, -321, -321, -321,
1086 -321, -321, -321, -321, -321, -321, -321, -321, -321, -321,
1087 79, -321, -321, -321, -321, -321, -321, -321, -321, -321,
1088 -321, -321, -321, -321, -321, -321, -321, -321, -321, -321,
1089 -321, -321, -321, -321, -321, -321, -321, -321, -321, -321,
1090 -321, -321, -321, -321, -321, -321, -321, -321, -321, -321,
1091 -70, -321, -321, 43, -321, -321, -321, 18, -22, -12,
1092 -5, 2, 25, -101, -321, -321, -321, 3320, -321, -43,
1093 -55, -54, 6, -148, -321, 52, 211, 211, 3509, -321,
1094 -321, -321, -47, -321, 3581, -321, -321, -321, 110, -321,
1095 -321, -321, -14, 3509, -321, 211, -321, 3581, -321, -321,
1096 -321, -321, -321, 131, -321, -321, 389, -321, -321, 15,
1097 -321, -321, -321, -321, -321, 3509, 109, 136, -321, -152,
1098 -321, -321, -321, 2400, -321, 105, 3509, 143, 1781, -321,
1099 -321, 7, 9, -107, -321, 10, 12, 1249, 27, 36,
1100 17, 2015, 40, 2952, 22, 42, -65, -321, -321, -321,
1101 -321, -321, 2952, 2952, 2952, -321, -321, -321, -321, -321,
1102 604, -321, -321, -321, -20, -321, -321, -321, 47, -92,
1103 3136, 46, -67, 2952, -24, -16, 111, -73, 108, 37,
1104 41, 39, 162, 161, -82, -321, -321, -147, -321, 44,
1105 61, -321, -321, -321, -321, 819, -321, -321, -321, -321,
1106 -321, -321, -321, -321, -321, 181, 3509, -160, -321, 2584,
1107 2952, -321, -321, -321, 63, -321, -321, 1898, 62, -146,
1108 -321, -321, -321, -321, 183, -321, 131, -321, -321, 187,
1109 1664, 2952, -321, -321, -144, 2952, -140, -321, 2216, -321,
1110 -321, -81, -321, 1034, -321, -321, 2952, 3437, -321, -321,
1111 2952, 70, -321, -321, -321, -321, -321, -321, -321, -321,
1112 -321, -321, -321, -321, -321, 2952, -321, 2952, 2952, 2952,
1113 2952, 2952, 2952, 2952, 2952, 2952, 2952, 2952, 2952, 2952,
1114 2952, 2952, 2952, 2952, 2952, 2952, 2952, 2952, -321, -321,
1115 -321, 74, -321, -321, 2768, 2952, 64, 69, -321, -321,
1116 -321, -321, 2952, 143, -321, -321, -321, 82, -321, -321,
1117 2216, -74, -321, -68, -321, 235, 78, 203, 85, -321,
1118 -321, 84, 78, 88, -321, -321, -321, -321, -321, -321,
1119 -24, -24, -16, -16, 111, 111, 111, 111, -73, -73,
1120 108, 37, 41, 39, 162, 161, -129, -321, 2952, 71,
1121 86, -321, 2952, 72, 87, -321, 2952, -321, 73, 92,
1122 1249, 75, 76, 1463, -321, 2952, 95, 2952, 80, -321,
1123 2952, -321, -63, 2952, 1463, 277, -321, -321, 2952, -321,
1124 -321, -321, -321, -321, -321, 2952, -321, 81, 78, -321,
1125 1249, -321, -321, -321, -321
1128 /* YYPGOTO[NTERM-NUM]. */
1129 static const yytype_int16 yypgoto
[] =
1131 -321, -321, -321, -321, -321, -321, -321, -321, -321, -321,
1132 -321, -321, -321, -321, 26, -321, -321, -321, -321, -135,
1133 -321, -91, -88, -106, -90, -3, -6, -4, -2, -1,
1134 0, -321, -139, -174, -321, -156, -217, 11, 13, -321,
1135 -321, -321, 83, 170, 164, 89, -321, -321, -243, -321,
1136 -321, 56, -71, -321, -321, -72, -9, -32, -321, -321,
1137 227, -321, 160, -131, -321, -15, -195, 57, -154, -320,
1138 -69, -84, 222, 133, 66, -321, -321, -13, -321, -321,
1139 -321, -321, -321, -321, -321, 231, -321
1142 /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
1143 positive, shift that token. If negative, reduce the rule which
1144 number is the opposite. If zero, do what YYDEFACT says.
1145 If YYTABLE_NINF, syntax error. */
1146 #define YYTABLE_NINF -170
1147 static const yytype_int16 yytable
[] =
1149 100, 116, 115, 249, 233, 254, 112, 256, 232, 305,
1150 130, -169, 317, 294, 295, 337, 272, 242, 261, 130,
1151 88, 4, 89, 1, 140, 141, 274, 275, 276, 277,
1152 278, 279, 280, 281, 282, 283, 314, 259, 260, 131,
1153 132, 133, 228, 150, 229, 5, 12, 13, 131, 132,
1154 133, 137, 307, 323, 315, 307, 318, 7, 286, 307,
1155 8, 310, 230, 399, 264, 265, 11, 138, 308, 324,
1156 307, 332, 144, 334, 399, 30, 31, 32, 100, 33,
1157 34, 35, 36, 37, 385, 151, 108, 337, 245, 142,
1158 233, 118, 246, 123, 232, 331, 345, 370, 88, 333,
1159 89, 119, 336, 269, 147, 374, 242, 270, 120, 310,
1160 342, 346, 109, 110, 339, 121, 111, 210, 307, 114,
1161 371, 380, 74, 75, 76, 307, 225, 381, 139, -41,
1162 306, 307, 407, 367, 296, 297, 307, 147, 122, 147,
1163 128, 318, 131, 132, 133, 129, 113, 284, 210, 143,
1164 366, 386, 347, 348, 349, 232, 232, 232, 232, 232,
1165 232, 232, 232, 232, 232, 232, 232, 232, 232, 232,
1166 232, 210, 125, 126, 336, 233, 266, 389, 267, 232,
1167 287, 288, 289, 233, 290, 291, 145, 232, 354, 355,
1168 356, 357, 404, 292, 293, 406, 298, 299, 318, 350,
1169 351, -103, 146, 411, 352, 353, 210, 152, 358, 359,
1170 412, 402, 227, 318, 12, 13, 318, 225, 236, 238,
1171 392, 250, 243, 244, 318, 247, 395, 248, 147, 233,
1172 251, 318, 252, 232, 255, 257, 258, 408, 12, 13,
1173 273, 210, 268, 30, 31, 32, 300, 33, 34, 210,
1174 302, 301, 303, 304, 210, -40, 414, 311, 322, 125,
1175 320, 325, 327, 116, 115, -35, 373, 30, 31, 32,
1176 368, 33, 34, 35, 36, 37, 376, 307, 372, 382,
1177 383, 384, -41, 388, 391, 387, 390, 394, 393, 410,
1178 398, 180, 403, 344, 405, 361, 413, 360, 362, 222,
1179 226, 363, 326, 364, 117, 365, 237, 328, 375, 312,
1180 409, 127, 397, 263, 0, 313, 329, 377, 124, 0,
1181 0, 210, 0, 0, 0, 0, 0, 0, 0, 0,
1182 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1183 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1184 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1185 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1186 0, 210, 0, 0, 210, 0, 0, 0, 0, 0,
1187 0, 0, 0, 0, 0, 210, 0, 0, 0, 0,
1188 0, 0, 12, 13, 14, 15, 16, 17, 155, 156,
1189 157, 210, 158, 159, 160, 161, 162, 163, 164, 18,
1190 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1191 29, 30, 31, 32, 0, 33, 34, 35, 36, 37,
1192 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1193 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1194 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1195 68, 69, 70, 71, 165, 166, 167, 168, 169, 170,
1196 171, 0, 0, 172, 173, 0, 0, 0, 0, 0,
1197 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1198 0, 0, 73, 74, 75, 76, 0, 77, 0, 0,
1199 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1200 83, 0, 0, 0, 0, 0, 0, 0, 0, 0,
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, 84, 0, 85, 0, 0, 0,
1204 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1205 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1206 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1207 0, 0, 0, 174, 0, 0, 0, 0, 0, 175,
1208 176, 177, 178, 0, 0, 0, 0, 0, 0, 0,
1209 0, 0, 0, 0, 179, 180, 181, 12, 13, 14,
1210 15, 16, 17, 155, 156, 157, 0, 158, 159, 160,
1211 161, 162, 163, 164, 18, 19, 20, 21, 22, 23,
1212 24, 25, 26, 27, 28, 29, 30, 31, 32, 0,
1213 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
1214 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1215 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1216 63, 64, 65, 66, 67, 68, 69, 70, 71, 165,
1217 166, 167, 168, 169, 170, 171, 0, 0, 172, 173,
1218 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1219 0, 0, 0, 0, 0, 0, 0, 73, 74, 75,
1220 76, 0, 77, 0, 0, 0, 0, 0, 0, 0,
1221 0, 0, 0, 0, 0, 83, 0, 0, 0, 0,
1222 0, 0, 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, 84,
1225 0, 85, 0, 0, 0, 0, 0, 0, 0, 0,
1226 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1227 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1228 0, 0, 0, 0, 0, 0, 0, 0, 174, 0,
1229 0, 0, 0, 0, 175, 176, 177, 178, 0, 0,
1230 0, 0, 0, 0, 0, 0, 0, 0, 0, 179,
1231 180, 262, 12, 13, 14, 15, 16, 17, 155, 156,
1232 157, 0, 158, 159, 160, 161, 162, 163, 164, 18,
1233 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1234 29, 30, 31, 32, 0, 33, 34, 35, 36, 37,
1235 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1236 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1237 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1238 68, 69, 70, 71, 165, 166, 167, 168, 169, 170,
1239 171, 0, 0, 172, 173, 0, 0, 0, 0, 0,
1240 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1241 0, 0, 73, 74, 75, 76, 0, 77, 0, 0,
1242 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1243 83, 0, 0, 0, 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, 84, 0, 85, 0, 0, 0,
1247 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1248 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1249 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1250 0, 0, 0, 174, 0, 0, 0, 0, 0, 175,
1251 176, 177, 178, 0, 0, 0, 0, 0, 0, 0,
1252 0, 0, 0, 0, 179, 180, 309, 12, 13, 14,
1253 15, 16, 17, 155, 156, 157, 0, 158, 159, 160,
1254 161, 162, 163, 164, 18, 19, 20, 21, 22, 23,
1255 24, 25, 26, 27, 28, 29, 30, 31, 32, 0,
1256 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
1257 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1258 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1259 63, 64, 65, 66, 67, 68, 69, 70, 71, 165,
1260 166, 167, 168, 169, 170, 171, 0, 0, 172, 173,
1261 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1262 0, 0, 0, 0, 0, 0, 0, 73, 74, 75,
1263 76, 0, 77, 0, 0, 0, 0, 0, 0, 0,
1264 0, 0, 0, 0, 0, 83, 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, 84,
1268 0, 85, 0, 0, 0, 0, 0, 0, 0, 0,
1269 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1270 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1271 0, 0, 0, 0, 0, 0, 0, 0, 174, 0,
1272 0, 0, 0, 0, 175, 176, 177, 178, 0, 0,
1273 0, 0, 0, 0, 0, 0, 0, 0, 0, 179,
1274 180, 340, 12, 13, 14, 15, 16, 17, 155, 156,
1275 157, 0, 158, 159, 160, 161, 162, 163, 164, 18,
1276 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1277 29, 30, 31, 32, 0, 33, 34, 35, 36, 37,
1278 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1279 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1280 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1281 68, 69, 70, 71, 165, 166, 167, 168, 169, 170,
1282 171, 0, 0, 172, 173, 0, 0, 0, 0, 0,
1283 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1284 0, 0, 73, 74, 75, 76, 0, 77, 0, 0,
1285 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1286 83, 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, 0, 0, 84, 0, 85, 0, 0, 0,
1290 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1291 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1292 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1293 0, 0, 0, 174, 0, 0, 0, 0, 0, 175,
1294 176, 177, 178, 0, 0, 0, 0, 0, 0, 0,
1295 0, 0, 0, 0, 179, 180, 12, 13, 14, 15,
1296 16, 17, 155, 156, 157, 0, 158, 159, 160, 161,
1297 162, 163, 164, 18, 19, 20, 21, 22, 23, 24,
1298 25, 26, 27, 28, 29, 30, 31, 32, 0, 33,
1299 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
1300 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1301 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1302 64, 65, 66, 67, 68, 69, 70, 71, 165, 166,
1303 167, 168, 169, 170, 171, 0, 0, 172, 173, 0,
1304 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1305 0, 0, 0, 0, 0, 0, 73, 74, 75, 76,
1306 0, 77, 0, 0, 0, 0, 0, 0, 0, 0,
1307 0, 0, 0, 0, 83, 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, 0, 0, 0, 0, 0, 84, 0,
1311 85, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1312 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1313 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1314 0, 0, 0, 0, 0, 0, 0, 174, 0, 0,
1315 0, 0, 0, 175, 176, 177, 178, 12, 13, 14,
1316 15, 16, 17, 0, 0, 0, 0, 0, 179, 126,
1317 0, 0, 0, 0, 18, 19, 20, 21, 22, 23,
1318 24, 25, 26, 27, 28, 29, 30, 31, 32, 0,
1319 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
1320 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1321 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1322 63, 64, 65, 66, 67, 68, 69, 70, 71, 0,
1323 166, 167, 168, 169, 170, 171, 0, 0, 172, 173,
1324 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1325 0, 0, 0, 0, 0, 0, 0, 73, 74, 75,
1326 76, 0, 77, 0, 0, 0, 0, 0, 0, 0,
1327 0, 0, 0, 0, 0, 83, 14, 15, 16, 17,
1328 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1329 0, 18, 19, 20, 21, 22, 23, 24, 25, 26,
1330 27, 28, 29, 0, 0, 0, 0, 0, 0, 84,
1331 0, 85, 38, 39, 40, 41, 42, 43, 44, 45,
1332 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1333 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1334 66, 67, 68, 69, 70, 71, 0, 72, 174, 0,
1335 0, 0, 0, 0, 175, 176, 177, 178, 0, 0,
1336 0, 0, 0, 0, 0, 0, 0, 0, 0, 179,
1337 0, 0, 0, 0, 0, 74, 75, 76, 0, 0,
1338 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1339 0, 0, 0, 14, 15, 16, 17, 0, 0, 0,
1340 0, 0, 0, 0, 0, 0, 0, 0, 18, 19,
1341 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
1342 0, 0, 0, 0, 0, 0, 84, 0, 85, 38,
1343 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1344 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1345 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1346 69, 70, 71, 0, 72, 0, 0, 0, 0, 0,
1347 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1348 0, 0, 0, 0, 0, 0, 0, 0, 241, 0,
1349 0, 0, 74, 75, 76, 0, 0, 0, 0, 0,
1350 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1351 14, 15, 16, 17, 0, 0, 0, 0, 0, 0,
1352 0, 0, 0, 0, 0, 18, 19, 20, 21, 22,
1353 23, 24, 25, 26, 27, 28, 29, 0, 0, 0,
1354 0, 0, 0, 84, 0, 85, 38, 39, 40, 41,
1355 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1356 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1357 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1358 0, 166, 167, 168, 169, 170, 171, 0, 0, 172,
1359 173, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1360 0, 0, 0, 0, 0, 321, 0, 0, 0, 74,
1361 75, 76, 0, 0, 0, 0, 0, 0, 0, 0,
1362 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1363 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1364 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1365 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1366 84, 0, 85, 0, 0, 0, 0, 0, 0, 0,
1367 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1368 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1369 0, 0, 0, 0, 0, 0, 0, 0, 0, 174,
1370 0, 0, 0, 0, 0, 175, 176, 177, 178, 12,
1371 13, 14, 15, 16, 17, 0, 0, 0, 0, 0,
1372 253, 0, 0, 0, 0, 0, 18, 19, 20, 21,
1373 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
1374 32, 0, 33, 34, 35, 36, 37, 38, 39, 40,
1375 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1376 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1377 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1378 71, 0, 166, 167, 168, 169, 170, 171, 0, 0,
1379 172, 173, 0, 0, 0, 0, 0, 0, 0, 0,
1380 0, 0, 0, 0, 0, 0, 0, 0, 0, 335,
1381 74, 75, 76, 0, 0, 0, 0, 0, 0, 0,
1382 0, 0, 0, 0, 0, 0, 0, 83, 0, 0,
1383 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1384 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1385 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1386 0, 84, 0, 85, 0, 0, 0, 0, 0, 0,
1387 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1388 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1389 0, 0, 0, 0, 0, 14, 15, 16, 17, 0,
1390 174, 0, 0, 0, 0, 0, 175, 176, 177, 178,
1391 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
1392 28, 29, 0, 0, 0, 0, 0, 0, 0, 0,
1393 0, 38, 39, 40, 41, 42, 43, 44, 45, 46,
1394 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1395 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1396 67, 68, 69, 70, 71, 0, 166, 167, 168, 169,
1397 170, 171, 0, 0, 172, 173, 0, 0, 0, 0,
1398 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1399 0, 0, 0, 0, 74, 75, 76, 0, 0, 0,
1400 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1401 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1402 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1403 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1404 0, 0, 0, 0, 0, 84, 0, 85, 0, 0,
1405 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1406 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1407 0, 0, 0, 0, 0, 0, 0, 0, 0, 14,
1408 15, 16, 17, 0, 174, 0, 0, 231, 0, 0,
1409 175, 176, 177, 178, 18, 19, 20, 21, 22, 23,
1410 24, 25, 26, 27, 28, 29, 0, 0, 0, 0,
1411 0, 0, 0, 0, 0, 38, 39, 40, 41, 42,
1412 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1413 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1414 63, 64, 65, 66, 67, 68, 69, 70, 71, 0,
1415 166, 167, 168, 169, 170, 171, 0, 0, 172, 173,
1416 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1417 0, 0, 0, 0, 0, 0, 0, 0, 74, 75,
1418 76, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1419 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1420 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1421 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1422 0, 0, 0, 0, 0, 0, 0, 0, 0, 84,
1423 0, 85, 0, 0, 0, 0, 0, 0, 0, 0,
1424 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1425 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1426 0, 0, 0, 14, 15, 16, 17, 0, 174, 0,
1427 0, 316, 0, 0, 175, 176, 177, 178, 18, 19,
1428 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
1429 0, 0, 0, 0, 0, 0, 0, 0, 0, 38,
1430 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1431 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1432 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1433 69, 70, 71, 0, 166, 167, 168, 169, 170, 171,
1434 0, 0, 172, 173, 0, 0, 0, 0, 0, 0,
1435 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1436 0, 0, 74, 75, 76, 0, 0, 0, 0, 0,
1437 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0,
1441 0, 0, 0, 84, 0, 85, 0, 0, 0, 0,
1442 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1443 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1444 0, 0, 0, 0, 0, 0, 0, 14, 15, 16,
1445 17, 0, 174, 0, 0, 369, 0, 0, 175, 176,
1446 177, 178, 18, 19, 20, 21, 22, 23, 24, 25,
1447 26, 27, 28, 29, 0, 0, 0, 0, 0, 0,
1448 0, 0, 0, 38, 39, 40, 41, 42, 43, 44,
1449 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1450 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1451 65, 66, 67, 68, 69, 70, 71, 0, 166, 167,
1452 168, 169, 170, 171, 0, 0, 172, 173, 0, 0,
1453 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1454 0, 0, 0, 0, 0, 0, 74, 75, 76, 0,
1455 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0,
1459 0, 0, 0, 0, 0, 0, 0, 84, 0, 85,
1460 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1461 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1462 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1463 0, 14, 15, 16, 17, 0, 174, 0, 0, 0,
1464 0, 0, 175, 176, 177, 178, 18, 19, 20, 21,
1465 22, 23, 24, 25, 26, 27, 28, 29, 0, 0,
1466 0, 0, 0, 0, 0, 0, 0, 38, 39, 40,
1467 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1468 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1469 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1470 271, 0, 166, 167, 168, 169, 170, 171, 0, 0,
1471 172, 173, 0, 0, 0, 0, 0, 0, 0, 0,
1472 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1473 74, 75, 76, 0, 0, 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, 0, 0, 0, 0, 0, 0,
1477 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1478 0, 84, 0, 85, 0, 0, 0, 0, 0, 0,
1479 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1480 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1481 0, 0, 0, 12, 13, 14, 15, 16, 17, 0,
1482 174, 0, 0, 0, 0, 0, 175, 176, 177, 178,
1483 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
1484 28, 29, 30, 31, 32, 0, 33, 34, 35, 36,
1485 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
1486 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1487 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1488 67, 68, 69, 70, 71, 0, 72, 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, 73, 74, 75, 76, 0, 77, 0,
1492 0, 0, 0, 0, 0, 0, 78, 79, 80, 81,
1493 82, 83, 14, 15, 16, 17, 0, 0, 0, 0,
1494 0, 0, 0, 0, 0, 0, 0, 18, 19, 20,
1495 21, 22, 23, 24, 25, 26, 27, 28, 29, 0,
1496 0, 0, 0, 0, 0, 84, 0, 85, 38, 39,
1497 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1498 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1499 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1500 70, 71, 0, 343, 14, 15, 16, 17, 171, 0,
1501 0, 0, 0, 0, 0, 0, 0, 0, 0, 18,
1502 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1503 29, 74, 75, 76, 0, 0, 0, 0, 0, 0,
1504 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1505 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1506 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1507 68, 69, 70, 71, 0, 72, 14, 15, 16, 17,
1508 0, 0, 84, 0, 85, 0, 0, 0, 0, 0,
1509 0, 18, 19, 20, 21, 22, 23, 24, 25, 26,
1510 27, 28, 29, 74, 75, 76, 0, 0, 0, 0,
1511 0, 0, 38, 39, 40, 41, 42, 43, 44, 45,
1512 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1513 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1514 66, 67, 68, 69, 70, 71, 0, 72, 0, 0,
1515 0, 0, 0, 0, 84, 0, 85, 0, 0, 0,
1516 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1517 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1518 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1519 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1520 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1521 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1522 0, 0, 0, 0, 0, 0, 84, 0, 85
1525 static const yytype_int16 yycheck
[] =
1527 9, 73, 73, 157, 143, 161, 76, 163, 143, 91,
1528 4, 76, 229, 86, 87, 258, 190, 148, 174, 4,
1529 9, 78, 9, 109, 96, 97, 93, 94, 95, 96,
1530 97, 98, 99, 100, 101, 102, 196, 172, 173, 33,
1531 34, 35, 194, 115, 196, 0, 3, 4, 33, 34,
1532 35, 199, 199, 199, 214, 199, 230, 113, 193, 199,
1533 110, 215, 214, 383, 84, 85, 76, 215, 215, 215,
1534 199, 215, 104, 213, 394, 32, 33, 34, 87, 36,
1535 37, 38, 39, 40, 213, 117, 112, 330, 195, 98,
1536 229, 113, 199, 194, 229, 251, 270, 314, 87, 255,
1537 87, 113, 258, 195, 113, 322, 237, 199, 113, 263,
1538 266, 285, 33, 34, 195, 113, 37, 126, 199, 76,
1539 315, 195, 104, 105, 106, 199, 135, 195, 76, 194,
1540 212, 199, 195, 307, 207, 208, 199, 146, 113, 148,
1541 195, 315, 33, 34, 35, 199, 216, 214, 157, 196,
1542 306, 368, 287, 288, 289, 290, 291, 292, 293, 294,
1543 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
1544 305, 180, 215, 216, 330, 314, 196, 372, 198, 314,
1545 204, 205, 206, 322, 200, 201, 76, 322, 294, 295,
1546 296, 297, 387, 82, 83, 390, 88, 89, 372, 290,
1547 291, 195, 216, 398, 292, 293, 215, 76, 298, 299,
1548 405, 385, 76, 387, 3, 4, 390, 226, 113, 76,
1549 376, 194, 215, 214, 398, 215, 380, 215, 237, 368,
1550 194, 405, 215, 368, 194, 213, 194, 393, 3, 4,
1551 194, 250, 195, 32, 33, 34, 209, 36, 37, 258,
1552 211, 210, 90, 92, 263, 194, 410, 76, 196, 215,
1553 197, 78, 75, 335, 335, 195, 197, 32, 33, 34,
1554 196, 36, 37, 38, 39, 40, 194, 199, 214, 76,
1555 195, 197, 194, 197, 197, 214, 214, 195, 215, 12,
1556 214, 216, 197, 267, 214, 301, 215, 300, 302, 129,
1557 136, 303, 246, 304, 77, 305, 146, 250, 323, 226,
1558 394, 89, 381, 180, -1, 226, 250, 330, 87, -1,
1559 -1, 330, -1, -1, -1, -1, -1, -1, -1, -1,
1560 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1561 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1562 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1563 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1564 -1, 380, -1, -1, 383, -1, -1, -1, -1, -1,
1565 -1, -1, -1, -1, -1, 394, -1, -1, -1, -1,
1566 -1, -1, 3, 4, 5, 6, 7, 8, 9, 10,
1567 11, 410, 13, 14, 15, 16, 17, 18, 19, 20,
1568 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
1569 31, 32, 33, 34, -1, 36, 37, 38, 39, 40,
1570 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1571 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1572 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1573 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
1574 81, -1, -1, 84, 85, -1, -1, -1, -1, -1,
1575 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1576 -1, -1, 103, 104, 105, 106, -1, 108, -1, -1,
1577 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1578 121, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1579 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1580 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1581 -1, -1, -1, -1, 155, -1, 157, -1, -1, -1,
1582 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1583 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1584 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1585 -1, -1, -1, 194, -1, -1, -1, -1, -1, 200,
1586 201, 202, 203, -1, -1, -1, -1, -1, -1, -1,
1587 -1, -1, -1, -1, 215, 216, 217, 3, 4, 5,
1588 6, 7, 8, 9, 10, 11, -1, 13, 14, 15,
1589 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
1590 26, 27, 28, 29, 30, 31, 32, 33, 34, -1,
1591 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
1592 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1593 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1594 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1595 76, 77, 78, 79, 80, 81, -1, -1, 84, 85,
1596 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1597 -1, -1, -1, -1, -1, -1, -1, 103, 104, 105,
1598 106, -1, 108, -1, -1, -1, -1, -1, -1, -1,
1599 -1, -1, -1, -1, -1, 121, -1, -1, -1, -1,
1600 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1601 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1602 -1, -1, -1, -1, -1, -1, -1, -1, -1, 155,
1603 -1, 157, -1, -1, -1, -1, -1, -1, -1, -1,
1604 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1605 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1606 -1, -1, -1, -1, -1, -1, -1, -1, 194, -1,
1607 -1, -1, -1, -1, 200, 201, 202, 203, -1, -1,
1608 -1, -1, -1, -1, -1, -1, -1, -1, -1, 215,
1609 216, 217, 3, 4, 5, 6, 7, 8, 9, 10,
1610 11, -1, 13, 14, 15, 16, 17, 18, 19, 20,
1611 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
1612 31, 32, 33, 34, -1, 36, 37, 38, 39, 40,
1613 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1614 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1615 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1616 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
1617 81, -1, -1, 84, 85, -1, -1, -1, -1, -1,
1618 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1619 -1, -1, 103, 104, 105, 106, -1, 108, -1, -1,
1620 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1621 121, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1622 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1623 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1624 -1, -1, -1, -1, 155, -1, 157, -1, -1, -1,
1625 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1626 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1627 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1628 -1, -1, -1, 194, -1, -1, -1, -1, -1, 200,
1629 201, 202, 203, -1, -1, -1, -1, -1, -1, -1,
1630 -1, -1, -1, -1, 215, 216, 217, 3, 4, 5,
1631 6, 7, 8, 9, 10, 11, -1, 13, 14, 15,
1632 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
1633 26, 27, 28, 29, 30, 31, 32, 33, 34, -1,
1634 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
1635 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1636 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1637 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1638 76, 77, 78, 79, 80, 81, -1, -1, 84, 85,
1639 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1640 -1, -1, -1, -1, -1, -1, -1, 103, 104, 105,
1641 106, -1, 108, -1, -1, -1, -1, -1, -1, -1,
1642 -1, -1, -1, -1, -1, 121, -1, -1, -1, -1,
1643 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1644 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1645 -1, -1, -1, -1, -1, -1, -1, -1, -1, 155,
1646 -1, 157, -1, -1, -1, -1, -1, -1, -1, -1,
1647 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1648 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1649 -1, -1, -1, -1, -1, -1, -1, -1, 194, -1,
1650 -1, -1, -1, -1, 200, 201, 202, 203, -1, -1,
1651 -1, -1, -1, -1, -1, -1, -1, -1, -1, 215,
1652 216, 217, 3, 4, 5, 6, 7, 8, 9, 10,
1653 11, -1, 13, 14, 15, 16, 17, 18, 19, 20,
1654 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
1655 31, 32, 33, 34, -1, 36, 37, 38, 39, 40,
1656 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1657 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1658 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1659 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
1660 81, -1, -1, 84, 85, -1, -1, -1, -1, -1,
1661 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1662 -1, -1, 103, 104, 105, 106, -1, 108, -1, -1,
1663 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1664 121, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1665 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1666 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1667 -1, -1, -1, -1, 155, -1, 157, -1, -1, -1,
1668 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1669 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1670 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1671 -1, -1, -1, 194, -1, -1, -1, -1, -1, 200,
1672 201, 202, 203, -1, -1, -1, -1, -1, -1, -1,
1673 -1, -1, -1, -1, 215, 216, 3, 4, 5, 6,
1674 7, 8, 9, 10, 11, -1, 13, 14, 15, 16,
1675 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
1676 27, 28, 29, 30, 31, 32, 33, 34, -1, 36,
1677 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
1678 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1679 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1680 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1681 77, 78, 79, 80, 81, -1, -1, 84, 85, -1,
1682 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1683 -1, -1, -1, -1, -1, -1, 103, 104, 105, 106,
1684 -1, 108, -1, -1, -1, -1, -1, -1, -1, -1,
1685 -1, -1, -1, -1, 121, -1, -1, -1, -1, -1,
1686 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1687 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1688 -1, -1, -1, -1, -1, -1, -1, -1, 155, -1,
1689 157, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1690 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1691 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1692 -1, -1, -1, -1, -1, -1, -1, 194, -1, -1,
1693 -1, -1, -1, 200, 201, 202, 203, 3, 4, 5,
1694 6, 7, 8, -1, -1, -1, -1, -1, 215, 216,
1695 -1, -1, -1, -1, 20, 21, 22, 23, 24, 25,
1696 26, 27, 28, 29, 30, 31, 32, 33, 34, -1,
1697 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
1698 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1699 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1700 66, 67, 68, 69, 70, 71, 72, 73, 74, -1,
1701 76, 77, 78, 79, 80, 81, -1, -1, 84, 85,
1702 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1703 -1, -1, -1, -1, -1, -1, -1, 103, 104, 105,
1704 106, -1, 108, -1, -1, -1, -1, -1, -1, -1,
1705 -1, -1, -1, -1, -1, 121, 5, 6, 7, 8,
1706 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1707 -1, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1708 29, 30, 31, -1, -1, -1, -1, -1, -1, 155,
1709 -1, 157, 41, 42, 43, 44, 45, 46, 47, 48,
1710 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1711 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1712 69, 70, 71, 72, 73, 74, -1, 76, 194, -1,
1713 -1, -1, -1, -1, 200, 201, 202, 203, -1, -1,
1714 -1, -1, -1, -1, -1, -1, -1, -1, -1, 215,
1715 -1, -1, -1, -1, -1, 104, 105, 106, -1, -1,
1716 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1717 -1, -1, -1, 5, 6, 7, 8, -1, -1, -1,
1718 -1, -1, -1, -1, -1, -1, -1, -1, 20, 21,
1719 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
1720 -1, -1, -1, -1, -1, -1, 155, -1, 157, 41,
1721 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1722 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1723 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1724 72, 73, 74, -1, 76, -1, -1, -1, -1, -1,
1725 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1726 -1, -1, -1, -1, -1, -1, -1, -1, 217, -1,
1727 -1, -1, 104, 105, 106, -1, -1, -1, -1, -1,
1728 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1729 5, 6, 7, 8, -1, -1, -1, -1, -1, -1,
1730 -1, -1, -1, -1, -1, 20, 21, 22, 23, 24,
1731 25, 26, 27, 28, 29, 30, 31, -1, -1, -1,
1732 -1, -1, -1, 155, -1, 157, 41, 42, 43, 44,
1733 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1734 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1735 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1736 -1, 76, 77, 78, 79, 80, 81, -1, -1, 84,
1737 85, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1738 -1, -1, -1, -1, -1, 217, -1, -1, -1, 104,
1739 105, 106, -1, -1, -1, -1, -1, -1, -1, -1,
1740 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1741 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1742 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1743 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1744 155, -1, 157, -1, -1, -1, -1, -1, -1, -1,
1745 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1746 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1747 -1, -1, -1, -1, -1, -1, -1, -1, -1, 194,
1748 -1, -1, -1, -1, -1, 200, 201, 202, 203, 3,
1749 4, 5, 6, 7, 8, -1, -1, -1, -1, -1,
1750 215, -1, -1, -1, -1, -1, 20, 21, 22, 23,
1751 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
1752 34, -1, 36, 37, 38, 39, 40, 41, 42, 43,
1753 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1754 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1755 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1756 74, -1, 76, 77, 78, 79, 80, 81, -1, -1,
1757 84, 85, -1, -1, -1, -1, -1, -1, -1, -1,
1758 -1, -1, -1, -1, -1, -1, -1, -1, -1, 103,
1759 104, 105, 106, -1, -1, -1, -1, -1, -1, -1,
1760 -1, -1, -1, -1, -1, -1, -1, 121, -1, -1,
1761 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1762 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1763 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1764 -1, 155, -1, 157, -1, -1, -1, -1, -1, -1,
1765 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1766 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1767 -1, -1, -1, -1, -1, 5, 6, 7, 8, -1,
1768 194, -1, -1, -1, -1, -1, 200, 201, 202, 203,
1769 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
1770 30, 31, -1, -1, -1, -1, -1, -1, -1, -1,
1771 -1, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1772 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1773 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1774 70, 71, 72, 73, 74, -1, 76, 77, 78, 79,
1775 80, 81, -1, -1, 84, 85, -1, -1, -1, -1,
1776 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1777 -1, -1, -1, -1, 104, 105, 106, -1, -1, -1,
1778 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1779 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1780 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1781 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1782 -1, -1, -1, -1, -1, 155, -1, 157, -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, 5,
1786 6, 7, 8, -1, 194, -1, -1, 197, -1, -1,
1787 200, 201, 202, 203, 20, 21, 22, 23, 24, 25,
1788 26, 27, 28, 29, 30, 31, -1, -1, -1, -1,
1789 -1, -1, -1, -1, -1, 41, 42, 43, 44, 45,
1790 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1791 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1792 66, 67, 68, 69, 70, 71, 72, 73, 74, -1,
1793 76, 77, 78, 79, 80, 81, -1, -1, 84, 85,
1794 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1795 -1, -1, -1, -1, -1, -1, -1, -1, 104, 105,
1796 106, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1797 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1798 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1799 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1800 -1, -1, -1, -1, -1, -1, -1, -1, -1, 155,
1801 -1, 157, -1, -1, -1, -1, -1, -1, -1, -1,
1802 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1803 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1804 -1, -1, -1, 5, 6, 7, 8, -1, 194, -1,
1805 -1, 197, -1, -1, 200, 201, 202, 203, 20, 21,
1806 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
1807 -1, -1, -1, -1, -1, -1, -1, -1, -1, 41,
1808 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1809 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1810 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1811 72, 73, 74, -1, 76, 77, 78, 79, 80, 81,
1812 -1, -1, 84, 85, -1, -1, -1, -1, -1, -1,
1813 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1814 -1, -1, 104, 105, 106, -1, -1, -1, -1, -1,
1815 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1816 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1817 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1818 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1819 -1, -1, -1, 155, -1, 157, -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, 5, 6, 7,
1823 8, -1, 194, -1, -1, 197, -1, -1, 200, 201,
1824 202, 203, 20, 21, 22, 23, 24, 25, 26, 27,
1825 28, 29, 30, 31, -1, -1, -1, -1, -1, -1,
1826 -1, -1, -1, 41, 42, 43, 44, 45, 46, 47,
1827 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1828 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1829 68, 69, 70, 71, 72, 73, 74, -1, 76, 77,
1830 78, 79, 80, 81, -1, -1, 84, 85, -1, -1,
1831 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1832 -1, -1, -1, -1, -1, -1, 104, 105, 106, -1,
1833 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1834 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1835 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1836 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1837 -1, -1, -1, -1, -1, -1, -1, 155, -1, 157,
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, 5, 6, 7, 8, -1, 194, -1, -1, -1,
1842 -1, -1, 200, 201, 202, 203, 20, 21, 22, 23,
1843 24, 25, 26, 27, 28, 29, 30, 31, -1, -1,
1844 -1, -1, -1, -1, -1, -1, -1, 41, 42, 43,
1845 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1846 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1847 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1848 74, -1, 76, 77, 78, 79, 80, 81, -1, -1,
1849 84, 85, -1, -1, -1, -1, -1, -1, -1, -1,
1850 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1851 104, 105, 106, -1, -1, -1, -1, -1, -1, -1,
1852 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1853 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1854 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1855 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1856 -1, 155, -1, 157, -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, 3, 4, 5, 6, 7, 8, -1,
1860 194, -1, -1, -1, -1, -1, 200, 201, 202, 203,
1861 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
1862 30, 31, 32, 33, 34, -1, 36, 37, 38, 39,
1863 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1864 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1865 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1866 70, 71, 72, 73, 74, -1, 76, -1, -1, -1,
1867 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1868 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1869 -1, -1, -1, 103, 104, 105, 106, -1, 108, -1,
1870 -1, -1, -1, -1, -1, -1, 116, 117, 118, 119,
1871 120, 121, 5, 6, 7, 8, -1, -1, -1, -1,
1872 -1, -1, -1, -1, -1, -1, -1, 20, 21, 22,
1873 23, 24, 25, 26, 27, 28, 29, 30, 31, -1,
1874 -1, -1, -1, -1, -1, 155, -1, 157, 41, 42,
1875 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1876 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1877 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
1878 73, 74, -1, 76, 5, 6, 7, 8, 81, -1,
1879 -1, -1, -1, -1, -1, -1, -1, -1, -1, 20,
1880 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
1881 31, 104, 105, 106, -1, -1, -1, -1, -1, -1,
1882 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1883 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1884 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1885 71, 72, 73, 74, -1, 76, 5, 6, 7, 8,
1886 -1, -1, 155, -1, 157, -1, -1, -1, -1, -1,
1887 -1, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1888 29, 30, 31, 104, 105, 106, -1, -1, -1, -1,
1889 -1, -1, 41, 42, 43, 44, 45, 46, 47, 48,
1890 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1891 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1892 69, 70, 71, 72, 73, 74, -1, 76, -1, -1,
1893 -1, -1, -1, -1, 155, -1, 157, -1, -1, -1,
1894 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1895 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1896 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1897 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1898 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1899 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1900 -1, -1, -1, -1, -1, -1, 155, -1, 157
1903 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1904 symbol of state STATE-NUM. */
1905 static const yytype_uint16 yystos
[] =
1907 0, 109, 219, 221, 78, 0, 223, 113, 110, 220,
1908 224, 76, 3, 4, 5, 6, 7, 8, 20, 21,
1909 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
1910 32, 33, 34, 36, 37, 38, 39, 40, 41, 42,
1911 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1912 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1913 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
1914 73, 74, 76, 103, 104, 105, 106, 108, 116, 117,
1915 118, 119, 120, 121, 155, 157, 222, 225, 255, 256,
1916 257, 258, 259, 264, 265, 266, 267, 270, 272, 273,
1917 274, 275, 276, 277, 278, 279, 303, 304, 112, 33,
1918 34, 37, 76, 216, 76, 270, 273, 278, 113, 113,
1919 113, 113, 113, 194, 303, 215, 216, 290, 195, 199,
1920 4, 33, 34, 35, 261, 262, 271, 199, 215, 76,
1921 273, 273, 274, 196, 275, 76, 216, 274, 280, 281,
1922 273, 275, 76, 268, 269, 9, 10, 11, 13, 14,
1923 15, 16, 17, 18, 19, 75, 76, 77, 78, 79,
1924 80, 81, 84, 85, 194, 200, 201, 202, 203, 215,
1925 216, 217, 226, 227, 228, 230, 231, 232, 233, 234,
1926 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
1927 245, 246, 247, 248, 249, 250, 251, 253, 255, 256,
1928 274, 285, 286, 287, 288, 291, 292, 293, 296, 297,
1929 298, 302, 261, 260, 263, 274, 262, 76, 194, 196,
1930 214, 197, 237, 250, 254, 274, 113, 280, 76, 282,
1931 283, 217, 281, 215, 214, 195, 199, 215, 215, 286,
1932 194, 194, 215, 215, 253, 194, 253, 213, 194, 237,
1933 237, 253, 217, 291, 84, 85, 196, 198, 195, 195,
1934 199, 74, 251, 194, 93, 94, 95, 96, 97, 98,
1935 99, 100, 101, 102, 214, 252, 237, 204, 205, 206,
1936 200, 201, 82, 83, 86, 87, 207, 208, 88, 89,
1937 209, 210, 211, 90, 92, 91, 212, 199, 215, 217,
1938 286, 76, 260, 263, 196, 214, 197, 254, 251, 284,
1939 197, 217, 196, 199, 215, 78, 269, 75, 285, 292,
1940 299, 253, 215, 253, 213, 103, 253, 266, 295, 195,
1941 217, 229, 253, 76, 232, 251, 251, 237, 237, 237,
1942 239, 239, 240, 240, 241, 241, 241, 241, 242, 242,
1943 243, 244, 245, 246, 247, 248, 253, 251, 196, 197,
1944 254, 284, 214, 197, 254, 283, 194, 295, 300, 301,
1945 195, 195, 76, 195, 197, 213, 254, 214, 197, 284,
1946 214, 197, 253, 215, 195, 286, 294, 288, 214, 287,
1947 289, 290, 251, 197, 284, 214, 284, 195, 253, 289,
1948 12, 284, 284, 215, 286
1951 #define yyerrok (yyerrstatus = 0)
1952 #define yyclearin (yychar = YYEMPTY)
1953 #define YYEMPTY (-2)
1956 #define YYACCEPT goto yyacceptlab
1957 #define YYABORT goto yyabortlab
1958 #define YYERROR goto yyerrorlab
1961 /* Like YYERROR except do call yyerror. This remains here temporarily
1962 to ease the transition to the new meaning of YYERROR, for GCC.
1963 Once GCC version 2 has supplanted version 1, this can go. However,
1964 YYFAIL appears to be in use. Nevertheless, it is formally deprecated
1965 in Bison 2.4.2's NEWS entry, where a plan to phase it out is
1968 #define YYFAIL goto yyerrlab
1970 /* This is here to suppress warnings from the GCC cpp's
1971 -Wunused-macros. Normally we don't worry about that warning, but
1972 some users do, and we want to make it easy for users to remove
1973 YYFAIL uses, which will produce warnings from Bison 2.5. */
1976 #define YYRECOVERING() (!!yyerrstatus)
1978 #define YYBACKUP(Token, Value) \
1980 if (yychar == YYEMPTY && yylen == 1) \
1984 yytoken = YYTRANSLATE (yychar); \
1990 yyerror (&yylloc, state, YY_("syntax error: cannot back up")); \
1997 #define YYERRCODE 256
2000 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
2001 If N is 0, then set CURRENT to the empty location which ends
2002 the previous symbol: RHS[0] (always defined). */
2004 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
2005 #ifndef YYLLOC_DEFAULT
2006 # define YYLLOC_DEFAULT(Current, Rhs, N) \
2010 (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
2011 (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
2012 (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
2013 (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
2017 (Current).first_line = (Current).last_line = \
2018 YYRHSLOC (Rhs, 0).last_line; \
2019 (Current).first_column = (Current).last_column = \
2020 YYRHSLOC (Rhs, 0).last_column; \
2026 /* YY_LOCATION_PRINT -- Print the location on the stream.
2027 This macro was not mandated originally: define only if we know
2028 we won't break user code: when these are the locations we know. */
2030 #ifndef YY_LOCATION_PRINT
2031 # if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
2032 # define YY_LOCATION_PRINT(File, Loc) \
2033 fprintf (File, "%d.%d-%d.%d", \
2034 (Loc).first_line, (Loc).first_column, \
2035 (Loc).last_line, (Loc).last_column)
2037 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2042 /* YYLEX -- calling `yylex' with the right arguments. */
2045 # define YYLEX yylex (&yylval, &yylloc, YYLEX_PARAM)
2047 # define YYLEX yylex (&yylval, &yylloc, scanner)
2050 /* Enable debugging if requested. */
2054 # include <stdio.h> /* INFRINGES ON USER NAME SPACE */
2055 # define YYFPRINTF fprintf
2058 # define YYDPRINTF(Args) \
2064 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
2068 YYFPRINTF (stderr, "%s ", Title); \
2069 yy_symbol_print (stderr, \
2070 Type, Value, Location, state); \
2071 YYFPRINTF (stderr, "\n"); \
2076 /*--------------------------------.
2077 | Print this symbol on YYOUTPUT. |
2078 `--------------------------------*/
2081 #if (defined __STDC__ || defined __C99__FUNC__ \
2082 || defined __cplusplus || defined _MSC_VER)
2084 yy_symbol_value_print (FILE *yyoutput
, int yytype
, YYSTYPE
const * const yyvaluep
, YYLTYPE
const * const yylocationp
, struct _mesa_glsl_parse_state
*state
)
2087 yy_symbol_value_print (yyoutput
, yytype
, yyvaluep
, yylocationp
, state
)
2090 YYSTYPE
const * const yyvaluep
;
2091 YYLTYPE
const * const yylocationp
;
2092 struct _mesa_glsl_parse_state
*state
;
2097 YYUSE (yylocationp
);
2100 if (yytype
< YYNTOKENS
)
2101 YYPRINT (yyoutput
, yytoknum
[yytype
], *yyvaluep
);
2113 /*--------------------------------.
2114 | Print this symbol on YYOUTPUT. |
2115 `--------------------------------*/
2117 #if (defined __STDC__ || defined __C99__FUNC__ \
2118 || defined __cplusplus || defined _MSC_VER)
2120 yy_symbol_print (FILE *yyoutput
, int yytype
, YYSTYPE
const * const yyvaluep
, YYLTYPE
const * const yylocationp
, struct _mesa_glsl_parse_state
*state
)
2123 yy_symbol_print (yyoutput
, yytype
, yyvaluep
, yylocationp
, state
)
2126 YYSTYPE
const * const yyvaluep
;
2127 YYLTYPE
const * const yylocationp
;
2128 struct _mesa_glsl_parse_state
*state
;
2131 if (yytype
< YYNTOKENS
)
2132 YYFPRINTF (yyoutput
, "token %s (", yytname
[yytype
]);
2134 YYFPRINTF (yyoutput
, "nterm %s (", yytname
[yytype
]);
2136 YY_LOCATION_PRINT (yyoutput
, *yylocationp
);
2137 YYFPRINTF (yyoutput
, ": ");
2138 yy_symbol_value_print (yyoutput
, yytype
, yyvaluep
, yylocationp
, state
);
2139 YYFPRINTF (yyoutput
, ")");
2142 /*------------------------------------------------------------------.
2143 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
2145 `------------------------------------------------------------------*/
2147 #if (defined __STDC__ || defined __C99__FUNC__ \
2148 || defined __cplusplus || defined _MSC_VER)
2150 yy_stack_print (yytype_int16
*yybottom
, yytype_int16
*yytop
)
2153 yy_stack_print (yybottom
, yytop
)
2154 yytype_int16
*yybottom
;
2155 yytype_int16
*yytop
;
2158 YYFPRINTF (stderr
, "Stack now");
2159 for (; yybottom
<= yytop
; yybottom
++)
2161 int yybot
= *yybottom
;
2162 YYFPRINTF (stderr
, " %d", yybot
);
2164 YYFPRINTF (stderr
, "\n");
2167 # define YY_STACK_PRINT(Bottom, Top) \
2170 yy_stack_print ((Bottom), (Top)); \
2174 /*------------------------------------------------.
2175 | Report that the YYRULE is going to be reduced. |
2176 `------------------------------------------------*/
2178 #if (defined __STDC__ || defined __C99__FUNC__ \
2179 || defined __cplusplus || defined _MSC_VER)
2181 yy_reduce_print (YYSTYPE
*yyvsp
, YYLTYPE
*yylsp
, int yyrule
, struct _mesa_glsl_parse_state
*state
)
2184 yy_reduce_print (yyvsp
, yylsp
, yyrule
, state
)
2188 struct _mesa_glsl_parse_state
*state
;
2191 int yynrhs
= yyr2
[yyrule
];
2193 unsigned long int yylno
= yyrline
[yyrule
];
2194 YYFPRINTF (stderr
, "Reducing stack by rule %d (line %lu):\n",
2196 /* The symbols being reduced. */
2197 for (yyi
= 0; yyi
< yynrhs
; yyi
++)
2199 YYFPRINTF (stderr
, " $%d = ", yyi
+ 1);
2200 yy_symbol_print (stderr
, yyrhs
[yyprhs
[yyrule
] + yyi
],
2201 &(yyvsp
[(yyi
+ 1) - (yynrhs
)])
2202 , &(yylsp
[(yyi
+ 1) - (yynrhs
)]) , state
);
2203 YYFPRINTF (stderr
, "\n");
2207 # define YY_REDUCE_PRINT(Rule) \
2210 yy_reduce_print (yyvsp, yylsp, Rule, state); \
2213 /* Nonzero means print parse trace. It is left uninitialized so that
2214 multiple parsers can coexist. */
2216 #else /* !YYDEBUG */
2217 # define YYDPRINTF(Args)
2218 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
2219 # define YY_STACK_PRINT(Bottom, Top)
2220 # define YY_REDUCE_PRINT(Rule)
2221 #endif /* !YYDEBUG */
2224 /* YYINITDEPTH -- initial size of the parser's stacks. */
2226 # define YYINITDEPTH 200
2229 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
2230 if the built-in stack extension method is used).
2232 Do not make this value too large; the results are undefined if
2233 YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
2234 evaluated with infinite-precision integer arithmetic. */
2237 # define YYMAXDEPTH 10000
2245 # if defined __GLIBC__ && defined _STRING_H
2246 # define yystrlen strlen
2248 /* Return the length of YYSTR. */
2249 #if (defined __STDC__ || defined __C99__FUNC__ \
2250 || defined __cplusplus || defined _MSC_VER)
2252 yystrlen (const char *yystr
)
2260 for (yylen
= 0; yystr
[yylen
]; yylen
++)
2268 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
2269 # define yystpcpy stpcpy
2271 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
2273 #if (defined __STDC__ || defined __C99__FUNC__ \
2274 || defined __cplusplus || defined _MSC_VER)
2276 yystpcpy (char *yydest
, const char *yysrc
)
2279 yystpcpy (yydest
, yysrc
)
2285 const char *yys
= yysrc
;
2287 while ((*yyd
++ = *yys
++) != '\0')
2296 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
2297 quotes and backslashes, so that it's suitable for yyerror. The
2298 heuristic is that double-quoting is unnecessary unless the string
2299 contains an apostrophe, a comma, or backslash (other than
2300 backslash-backslash). YYSTR is taken from yytname. If YYRES is
2301 null, do not copy; instead, return the length of what the result
2304 yytnamerr (char *yyres
, const char *yystr
)
2309 char const *yyp
= yystr
;
2316 goto do_not_strip_quotes
;
2320 goto do_not_strip_quotes
;
2333 do_not_strip_quotes
: ;
2337 return yystrlen (yystr
);
2339 return yystpcpy (yyres
, yystr
) - yyres
;
2343 /* Copy into YYRESULT an error message about the unexpected token
2344 YYCHAR while in state YYSTATE. Return the number of bytes copied,
2345 including the terminating null byte. If YYRESULT is null, do not
2346 copy anything; just return the number of bytes that would be
2347 copied. As a special case, return 0 if an ordinary "syntax error"
2348 message will do. Return YYSIZE_MAXIMUM if overflow occurs during
2349 size calculation. */
2351 yysyntax_error (char *yyresult
, int yystate
, int yychar
)
2353 int yyn
= yypact
[yystate
];
2355 if (! (YYPACT_NINF
< yyn
&& yyn
<= YYLAST
))
2359 int yytype
= YYTRANSLATE (yychar
);
2360 YYSIZE_T yysize0
= yytnamerr (0, yytname
[yytype
]);
2361 YYSIZE_T yysize
= yysize0
;
2363 int yysize_overflow
= 0;
2364 enum { YYERROR_VERBOSE_ARGS_MAXIMUM
= 5 };
2365 char const *yyarg
[YYERROR_VERBOSE_ARGS_MAXIMUM
];
2369 /* This is so xgettext sees the translatable formats that are
2370 constructed on the fly. */
2371 YY_("syntax error, unexpected %s");
2372 YY_("syntax error, unexpected %s, expecting %s");
2373 YY_("syntax error, unexpected %s, expecting %s or %s");
2374 YY_("syntax error, unexpected %s, expecting %s or %s or %s");
2375 YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
2379 static char const yyunexpected
[] = "syntax error, unexpected %s";
2380 static char const yyexpecting
[] = ", expecting %s";
2381 static char const yyor
[] = " or %s";
2382 char yyformat
[sizeof yyunexpected
2383 + sizeof yyexpecting
- 1
2384 + ((YYERROR_VERBOSE_ARGS_MAXIMUM
- 2)
2385 * (sizeof yyor
- 1))];
2386 char const *yyprefix
= yyexpecting
;
2388 /* Start YYX at -YYN if negative to avoid negative indexes in
2390 int yyxbegin
= yyn
< 0 ? -yyn
: 0;
2392 /* Stay within bounds of both yycheck and yytname. */
2393 int yychecklim
= YYLAST
- yyn
+ 1;
2394 int yyxend
= yychecklim
< YYNTOKENS
? yychecklim
: YYNTOKENS
;
2397 yyarg
[0] = yytname
[yytype
];
2398 yyfmt
= yystpcpy (yyformat
, yyunexpected
);
2400 for (yyx
= yyxbegin
; yyx
< yyxend
; ++yyx
)
2401 if (yycheck
[yyx
+ yyn
] == yyx
&& yyx
!= YYTERROR
)
2403 if (yycount
== YYERROR_VERBOSE_ARGS_MAXIMUM
)
2407 yyformat
[sizeof yyunexpected
- 1] = '\0';
2410 yyarg
[yycount
++] = yytname
[yyx
];
2411 yysize1
= yysize
+ yytnamerr (0, yytname
[yyx
]);
2412 yysize_overflow
|= (yysize1
< yysize
);
2414 yyfmt
= yystpcpy (yyfmt
, yyprefix
);
2418 yyf
= YY_(yyformat
);
2419 yysize1
= yysize
+ yystrlen (yyf
);
2420 yysize_overflow
|= (yysize1
< yysize
);
2423 if (yysize_overflow
)
2424 return YYSIZE_MAXIMUM
;
2428 /* Avoid sprintf, as that infringes on the user's name space.
2429 Don't have undefined behavior even if the translation
2430 produced a string with the wrong number of "%s"s. */
2431 char *yyp
= yyresult
;
2433 while ((*yyp
= *yyf
) != '\0')
2435 if (*yyp
== '%' && yyf
[1] == 's' && yyi
< yycount
)
2437 yyp
+= yytnamerr (yyp
, yyarg
[yyi
++]);
2450 #endif /* YYERROR_VERBOSE */
2453 /*-----------------------------------------------.
2454 | Release the memory associated to this symbol. |
2455 `-----------------------------------------------*/
2458 #if (defined __STDC__ || defined __C99__FUNC__ \
2459 || defined __cplusplus || defined _MSC_VER)
2461 yydestruct (const char *yymsg
, int yytype
, YYSTYPE
*yyvaluep
, YYLTYPE
*yylocationp
, struct _mesa_glsl_parse_state
*state
)
2464 yydestruct (yymsg
, yytype
, yyvaluep
, yylocationp
, state
)
2468 YYLTYPE
*yylocationp
;
2469 struct _mesa_glsl_parse_state
*state
;
2473 YYUSE (yylocationp
);
2478 YY_SYMBOL_PRINT (yymsg
, yytype
, yyvaluep
, yylocationp
);
2488 /* Prevent warnings from -Wmissing-prototypes. */
2489 #ifdef YYPARSE_PARAM
2490 #if defined __STDC__ || defined __cplusplus
2491 int yyparse (void *YYPARSE_PARAM
);
2495 #else /* ! YYPARSE_PARAM */
2496 #if defined __STDC__ || defined __cplusplus
2497 int yyparse (struct _mesa_glsl_parse_state
*state
);
2501 #endif /* ! YYPARSE_PARAM */
2507 /*-------------------------.
2508 | yyparse or yypush_parse. |
2509 `-------------------------*/
2511 #ifdef YYPARSE_PARAM
2512 #if (defined __STDC__ || defined __C99__FUNC__ \
2513 || defined __cplusplus || defined _MSC_VER)
2515 yyparse (void *YYPARSE_PARAM
)
2518 yyparse (YYPARSE_PARAM
)
2519 void *YYPARSE_PARAM
;
2521 #else /* ! YYPARSE_PARAM */
2522 #if (defined __STDC__ || defined __C99__FUNC__ \
2523 || defined __cplusplus || defined _MSC_VER)
2525 yyparse (struct _mesa_glsl_parse_state
*state
)
2529 struct _mesa_glsl_parse_state
*state
;
2533 /* The lookahead symbol. */
2536 /* The semantic value of the lookahead symbol. */
2539 /* Location data for the lookahead symbol. */
2542 /* Number of syntax errors so far. */
2546 /* Number of tokens to shift before error messages enabled. */
2549 /* The stacks and their tools:
2550 `yyss': related to states.
2551 `yyvs': related to semantic values.
2552 `yyls': related to locations.
2554 Refer to the stacks thru separate pointers, to allow yyoverflow
2555 to reallocate them elsewhere. */
2557 /* The state stack. */
2558 yytype_int16 yyssa
[YYINITDEPTH
];
2560 yytype_int16
*yyssp
;
2562 /* The semantic value stack. */
2563 YYSTYPE yyvsa
[YYINITDEPTH
];
2567 /* The location stack. */
2568 YYLTYPE yylsa
[YYINITDEPTH
];
2572 /* The locations where the error started and ended. */
2573 YYLTYPE yyerror_range
[3];
2575 YYSIZE_T yystacksize
;
2579 /* Lookahead token as an internal (translated) token number. */
2581 /* The variables used to return semantic value and location from the
2587 /* Buffer for error messages, and its allocated size. */
2589 char *yymsg
= yymsgbuf
;
2590 YYSIZE_T yymsg_alloc
= sizeof yymsgbuf
;
2593 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N), yylsp -= (N))
2595 /* The number of symbols on the RHS of the reduced rule.
2596 Keep to zero when no symbol should be popped. */
2603 yystacksize
= YYINITDEPTH
;
2605 YYDPRINTF ((stderr
, "Starting parse\n"));
2610 yychar
= YYEMPTY
; /* Cause a token to be read. */
2612 /* Initialize stack pointers.
2613 Waste one element of value and location stack
2614 so that they stay on the same level as the state stack.
2615 The wasted elements are never initialized. */
2620 #if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
2621 /* Initialize the default location before parsing starts. */
2622 yylloc
.first_line
= yylloc
.last_line
= 1;
2623 yylloc
.first_column
= yylloc
.last_column
= 1;
2626 /* User initialization code. */
2628 /* Line 1251 of yacc.c */
2629 #line 41 "glsl_parser.ypp"
2631 yylloc
.first_line
= 1;
2632 yylloc
.first_column
= 1;
2633 yylloc
.last_line
= 1;
2634 yylloc
.last_column
= 1;
2638 /* Line 1251 of yacc.c */
2639 #line 2640 "glsl_parser.cpp"
2644 /*------------------------------------------------------------.
2645 | yynewstate -- Push a new state, which is found in yystate. |
2646 `------------------------------------------------------------*/
2648 /* In all cases, when you get here, the value and location stacks
2649 have just been pushed. So pushing a state here evens the stacks. */
2655 if (yyss
+ yystacksize
- 1 <= yyssp
)
2657 /* Get the current used size of the three stacks, in elements. */
2658 YYSIZE_T yysize
= yyssp
- yyss
+ 1;
2662 /* Give user a chance to reallocate the stack. Use copies of
2663 these so that the &'s don't force the real ones into
2665 YYSTYPE
*yyvs1
= yyvs
;
2666 yytype_int16
*yyss1
= yyss
;
2667 YYLTYPE
*yyls1
= yyls
;
2669 /* Each stack pointer address is followed by the size of the
2670 data in use in that stack, in bytes. This used to be a
2671 conditional around just the two extra args, but that might
2672 be undefined if yyoverflow is a macro. */
2673 yyoverflow (YY_("memory exhausted"),
2674 &yyss1
, yysize
* sizeof (*yyssp
),
2675 &yyvs1
, yysize
* sizeof (*yyvsp
),
2676 &yyls1
, yysize
* sizeof (*yylsp
),
2683 #else /* no yyoverflow */
2684 # ifndef YYSTACK_RELOCATE
2685 goto yyexhaustedlab
;
2687 /* Extend the stack our own way. */
2688 if (YYMAXDEPTH
<= yystacksize
)
2689 goto yyexhaustedlab
;
2691 if (YYMAXDEPTH
< yystacksize
)
2692 yystacksize
= YYMAXDEPTH
;
2695 yytype_int16
*yyss1
= yyss
;
2696 union yyalloc
*yyptr
=
2697 (union yyalloc
*) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize
));
2699 goto yyexhaustedlab
;
2700 YYSTACK_RELOCATE (yyss_alloc
, yyss
);
2701 YYSTACK_RELOCATE (yyvs_alloc
, yyvs
);
2702 YYSTACK_RELOCATE (yyls_alloc
, yyls
);
2703 # undef YYSTACK_RELOCATE
2705 YYSTACK_FREE (yyss1
);
2708 #endif /* no yyoverflow */
2710 yyssp
= yyss
+ yysize
- 1;
2711 yyvsp
= yyvs
+ yysize
- 1;
2712 yylsp
= yyls
+ yysize
- 1;
2714 YYDPRINTF ((stderr
, "Stack size increased to %lu\n",
2715 (unsigned long int) yystacksize
));
2717 if (yyss
+ yystacksize
- 1 <= yyssp
)
2721 YYDPRINTF ((stderr
, "Entering state %d\n", yystate
));
2723 if (yystate
== YYFINAL
)
2733 /* Do appropriate processing given the current state. Read a
2734 lookahead token if we need one and don't already have one. */
2736 /* First try to decide what to do without reference to lookahead token. */
2737 yyn
= yypact
[yystate
];
2738 if (yyn
== YYPACT_NINF
)
2741 /* Not known => get a lookahead token if don't already have one. */
2743 /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
2744 if (yychar
== YYEMPTY
)
2746 YYDPRINTF ((stderr
, "Reading a token: "));
2750 if (yychar
<= YYEOF
)
2752 yychar
= yytoken
= YYEOF
;
2753 YYDPRINTF ((stderr
, "Now at end of input.\n"));
2757 yytoken
= YYTRANSLATE (yychar
);
2758 YY_SYMBOL_PRINT ("Next token is", yytoken
, &yylval
, &yylloc
);
2761 /* If the proper action on seeing token YYTOKEN is to reduce or to
2762 detect an error, take that action. */
2764 if (yyn
< 0 || YYLAST
< yyn
|| yycheck
[yyn
] != yytoken
)
2769 if (yyn
== 0 || yyn
== YYTABLE_NINF
)
2775 /* Count tokens shifted since error; after three, turn off error
2780 /* Shift the lookahead token. */
2781 YY_SYMBOL_PRINT ("Shifting", yytoken
, &yylval
, &yylloc
);
2783 /* Discard the shifted token. */
2792 /*-----------------------------------------------------------.
2793 | yydefault -- do the default action for the current state. |
2794 `-----------------------------------------------------------*/
2796 yyn
= yydefact
[yystate
];
2802 /*-----------------------------.
2803 | yyreduce -- Do a reduction. |
2804 `-----------------------------*/
2806 /* yyn is the number of a rule to reduce with. */
2809 /* If YYLEN is nonzero, implement the default value of the action:
2812 Otherwise, the following line sets YYVAL to garbage.
2813 This behavior is undocumented and Bison
2814 users should not rely upon it. Assigning to YYVAL
2815 unconditionally makes the parser a bit smaller, and it avoids a
2816 GCC warning that YYVAL may be used uninitialized. */
2817 yyval
= yyvsp
[1-yylen
];
2819 /* Default location. */
2820 YYLLOC_DEFAULT (yyloc
, (yylsp
- yylen
), yylen
);
2821 YY_REDUCE_PRINT (yyn
);
2826 /* Line 1464 of yacc.c */
2827 #line 213 "glsl_parser.ypp"
2829 _mesa_glsl_initialize_types(state
);
2835 /* Line 1464 of yacc.c */
2836 #line 222 "glsl_parser.ypp"
2838 bool supported
= false;
2840 switch ((yyvsp
[(2) - (3)].n
)) {
2842 state
->es_shader
= true;
2843 supported
= state
->Const
.GLSL_100ES
;
2846 supported
= state
->Const
.GLSL_110
;
2849 supported
= state
->Const
.GLSL_120
;
2852 supported
= state
->Const
.GLSL_130
;
2859 state
->language_version
= (yyvsp
[(2) - (3)].n
);
2860 state
->version_string
=
2861 ralloc_asprintf(state
, "GLSL%s %d.%02d",
2862 state
->es_shader
? " ES" : "",
2863 state
->language_version
/ 100,
2864 state
->language_version
% 100);
2867 _mesa_glsl_error(& (yylsp
[(2) - (3)]), state
, "%s is not supported. "
2868 "Supported versions are: %s\n",
2869 state
->version_string
,
2870 state
->supported_version_string
);
2877 /* Line 1464 of yacc.c */
2878 #line 266 "glsl_parser.ypp"
2880 if (state
->language_version
< 120) {
2881 _mesa_glsl_warning(& (yylsp
[(1) - (2)]), state
,
2882 "pragma `invariant(all)' not supported in %s",
2883 state
->version_string
);
2885 state
->all_invariant
= true;
2892 /* Line 1464 of yacc.c */
2893 #line 284 "glsl_parser.ypp"
2895 if (!_mesa_glsl_process_extension((yyvsp
[(2) - (5)].identifier
), & (yylsp
[(2) - (5)]), (yyvsp
[(4) - (5)].identifier
), & (yylsp
[(4) - (5)]), state
)) {
2903 /* Line 1464 of yacc.c */
2904 #line 293 "glsl_parser.ypp"
2906 /* FINISHME: The NULL test is required because pragmas are set to
2907 * FINISHME: NULL. (See production rule for external_declaration.)
2909 if ((yyvsp
[(1) - (1)].node
) != NULL
)
2910 state
->translation_unit
.push_tail(& (yyvsp
[(1) - (1)].node
)->link
);
2916 /* Line 1464 of yacc.c */
2917 #line 301 "glsl_parser.ypp"
2919 /* FINISHME: The NULL test is required because pragmas are set to
2920 * FINISHME: NULL. (See production rule for external_declaration.)
2922 if ((yyvsp
[(2) - (2)].node
) != NULL
)
2923 state
->translation_unit
.push_tail(& (yyvsp
[(2) - (2)].node
)->link
);
2929 /* Line 1464 of yacc.c */
2930 #line 316 "glsl_parser.ypp"
2933 (yyval
.expression
) = new(ctx
) ast_expression(ast_identifier
, NULL
, NULL
, NULL
);
2934 (yyval
.expression
)->set_location(yylloc
);
2935 (yyval
.expression
)->primary_expression
.identifier
= (yyvsp
[(1) - (1)].identifier
);
2941 /* Line 1464 of yacc.c */
2942 #line 323 "glsl_parser.ypp"
2945 (yyval
.expression
) = new(ctx
) ast_expression(ast_int_constant
, NULL
, NULL
, NULL
);
2946 (yyval
.expression
)->set_location(yylloc
);
2947 (yyval
.expression
)->primary_expression
.int_constant
= (yyvsp
[(1) - (1)].n
);
2953 /* Line 1464 of yacc.c */
2954 #line 330 "glsl_parser.ypp"
2957 (yyval
.expression
) = new(ctx
) ast_expression(ast_uint_constant
, NULL
, NULL
, NULL
);
2958 (yyval
.expression
)->set_location(yylloc
);
2959 (yyval
.expression
)->primary_expression
.uint_constant
= (yyvsp
[(1) - (1)].n
);
2965 /* Line 1464 of yacc.c */
2966 #line 337 "glsl_parser.ypp"
2969 (yyval
.expression
) = new(ctx
) ast_expression(ast_float_constant
, NULL
, NULL
, NULL
);
2970 (yyval
.expression
)->set_location(yylloc
);
2971 (yyval
.expression
)->primary_expression
.float_constant
= (yyvsp
[(1) - (1)].real
);
2977 /* Line 1464 of yacc.c */
2978 #line 344 "glsl_parser.ypp"
2981 (yyval
.expression
) = new(ctx
) ast_expression(ast_bool_constant
, NULL
, NULL
, NULL
);
2982 (yyval
.expression
)->set_location(yylloc
);
2983 (yyval
.expression
)->primary_expression
.bool_constant
= (yyvsp
[(1) - (1)].n
);
2989 /* Line 1464 of yacc.c */
2990 #line 351 "glsl_parser.ypp"
2992 (yyval
.expression
) = (yyvsp
[(2) - (3)].expression
);
2998 /* Line 1464 of yacc.c */
2999 #line 359 "glsl_parser.ypp"
3002 (yyval
.expression
) = new(ctx
) ast_expression(ast_array_index
, (yyvsp
[(1) - (4)].expression
), (yyvsp
[(3) - (4)].expression
), NULL
);
3003 (yyval
.expression
)->set_location(yylloc
);
3009 /* Line 1464 of yacc.c */
3010 #line 365 "glsl_parser.ypp"
3012 (yyval
.expression
) = (yyvsp
[(1) - (1)].expression
);
3018 /* Line 1464 of yacc.c */
3019 #line 369 "glsl_parser.ypp"
3022 (yyval
.expression
) = new(ctx
) ast_expression(ast_field_selection
, (yyvsp
[(1) - (3)].expression
), NULL
, NULL
);
3023 (yyval
.expression
)->set_location(yylloc
);
3024 (yyval
.expression
)->primary_expression
.identifier
= (yyvsp
[(3) - (3)].identifier
);
3030 /* Line 1464 of yacc.c */
3031 #line 376 "glsl_parser.ypp"
3034 (yyval
.expression
) = new(ctx
) ast_expression(ast_post_inc
, (yyvsp
[(1) - (2)].expression
), NULL
, NULL
);
3035 (yyval
.expression
)->set_location(yylloc
);
3041 /* Line 1464 of yacc.c */
3042 #line 382 "glsl_parser.ypp"
3045 (yyval
.expression
) = new(ctx
) ast_expression(ast_post_dec
, (yyvsp
[(1) - (2)].expression
), NULL
, NULL
);
3046 (yyval
.expression
)->set_location(yylloc
);
3052 /* Line 1464 of yacc.c */
3053 #line 400 "glsl_parser.ypp"
3056 (yyval
.expression
) = new(ctx
) ast_expression(ast_field_selection
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
), NULL
);
3057 (yyval
.expression
)->set_location(yylloc
);
3063 /* Line 1464 of yacc.c */
3064 #line 419 "glsl_parser.ypp"
3066 (yyval
.expression
) = (yyvsp
[(1) - (2)].expression
);
3067 (yyval
.expression
)->set_location(yylloc
);
3068 (yyval
.expression
)->expressions
.push_tail(& (yyvsp
[(2) - (2)].expression
)->link
);
3074 /* Line 1464 of yacc.c */
3075 #line 425 "glsl_parser.ypp"
3077 (yyval
.expression
) = (yyvsp
[(1) - (3)].expression
);
3078 (yyval
.expression
)->set_location(yylloc
);
3079 (yyval
.expression
)->expressions
.push_tail(& (yyvsp
[(3) - (3)].expression
)->link
);
3085 /* Line 1464 of yacc.c */
3086 #line 441 "glsl_parser.ypp"
3089 (yyval
.expression
) = new(ctx
) ast_function_expression((yyvsp
[(1) - (1)].type_specifier
));
3090 (yyval
.expression
)->set_location(yylloc
);
3096 /* Line 1464 of yacc.c */
3097 #line 447 "glsl_parser.ypp"
3100 ast_expression
*callee
= new(ctx
) ast_expression((yyvsp
[(1) - (1)].identifier
));
3101 (yyval
.expression
) = new(ctx
) ast_function_expression(callee
);
3102 (yyval
.expression
)->set_location(yylloc
);
3108 /* Line 1464 of yacc.c */
3109 #line 454 "glsl_parser.ypp"
3112 ast_expression
*callee
= new(ctx
) ast_expression((yyvsp
[(1) - (1)].identifier
));
3113 (yyval
.expression
) = new(ctx
) ast_function_expression(callee
);
3114 (yyval
.expression
)->set_location(yylloc
);
3120 /* Line 1464 of yacc.c */
3121 #line 466 "glsl_parser.ypp"
3124 (yyval
.expression
) = new(ctx
) ast_expression(ast_pre_inc
, (yyvsp
[(2) - (2)].expression
), NULL
, NULL
);
3125 (yyval
.expression
)->set_location(yylloc
);
3131 /* Line 1464 of yacc.c */
3132 #line 472 "glsl_parser.ypp"
3135 (yyval
.expression
) = new(ctx
) ast_expression(ast_pre_dec
, (yyvsp
[(2) - (2)].expression
), NULL
, NULL
);
3136 (yyval
.expression
)->set_location(yylloc
);
3142 /* Line 1464 of yacc.c */
3143 #line 478 "glsl_parser.ypp"
3146 (yyval
.expression
) = new(ctx
) ast_expression((yyvsp
[(1) - (2)].n
), (yyvsp
[(2) - (2)].expression
), NULL
, NULL
);
3147 (yyval
.expression
)->set_location(yylloc
);
3153 /* Line 1464 of yacc.c */
3154 #line 487 "glsl_parser.ypp"
3155 { (yyval
.n
) = ast_plus
; ;}
3160 /* Line 1464 of yacc.c */
3161 #line 488 "glsl_parser.ypp"
3162 { (yyval
.n
) = ast_neg
; ;}
3167 /* Line 1464 of yacc.c */
3168 #line 489 "glsl_parser.ypp"
3169 { (yyval
.n
) = ast_logic_not
; ;}
3174 /* Line 1464 of yacc.c */
3175 #line 490 "glsl_parser.ypp"
3176 { (yyval
.n
) = ast_bit_not
; ;}
3181 /* Line 1464 of yacc.c */
3182 #line 496 "glsl_parser.ypp"
3185 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_mul
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3186 (yyval
.expression
)->set_location(yylloc
);
3192 /* Line 1464 of yacc.c */
3193 #line 502 "glsl_parser.ypp"
3196 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_div
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3197 (yyval
.expression
)->set_location(yylloc
);
3203 /* Line 1464 of yacc.c */
3204 #line 508 "glsl_parser.ypp"
3207 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_mod
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3208 (yyval
.expression
)->set_location(yylloc
);
3214 /* Line 1464 of yacc.c */
3215 #line 518 "glsl_parser.ypp"
3218 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_add
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3219 (yyval
.expression
)->set_location(yylloc
);
3225 /* Line 1464 of yacc.c */
3226 #line 524 "glsl_parser.ypp"
3229 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_sub
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3230 (yyval
.expression
)->set_location(yylloc
);
3236 /* Line 1464 of yacc.c */
3237 #line 534 "glsl_parser.ypp"
3240 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_lshift
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3241 (yyval
.expression
)->set_location(yylloc
);
3247 /* Line 1464 of yacc.c */
3248 #line 540 "glsl_parser.ypp"
3251 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_rshift
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3252 (yyval
.expression
)->set_location(yylloc
);
3258 /* Line 1464 of yacc.c */
3259 #line 550 "glsl_parser.ypp"
3262 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_less
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3263 (yyval
.expression
)->set_location(yylloc
);
3269 /* Line 1464 of yacc.c */
3270 #line 556 "glsl_parser.ypp"
3273 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_greater
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3274 (yyval
.expression
)->set_location(yylloc
);
3280 /* Line 1464 of yacc.c */
3281 #line 562 "glsl_parser.ypp"
3284 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_lequal
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3285 (yyval
.expression
)->set_location(yylloc
);
3291 /* Line 1464 of yacc.c */
3292 #line 568 "glsl_parser.ypp"
3295 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_gequal
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3296 (yyval
.expression
)->set_location(yylloc
);
3302 /* Line 1464 of yacc.c */
3303 #line 578 "glsl_parser.ypp"
3306 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_equal
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3307 (yyval
.expression
)->set_location(yylloc
);
3313 /* Line 1464 of yacc.c */
3314 #line 584 "glsl_parser.ypp"
3317 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_nequal
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3318 (yyval
.expression
)->set_location(yylloc
);
3324 /* Line 1464 of yacc.c */
3325 #line 594 "glsl_parser.ypp"
3328 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_bit_and
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3329 (yyval
.expression
)->set_location(yylloc
);
3335 /* Line 1464 of yacc.c */
3336 #line 604 "glsl_parser.ypp"
3339 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_bit_xor
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3340 (yyval
.expression
)->set_location(yylloc
);
3346 /* Line 1464 of yacc.c */
3347 #line 614 "glsl_parser.ypp"
3350 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_bit_or
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3351 (yyval
.expression
)->set_location(yylloc
);
3357 /* Line 1464 of yacc.c */
3358 #line 624 "glsl_parser.ypp"
3361 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_logic_and
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3362 (yyval
.expression
)->set_location(yylloc
);
3368 /* Line 1464 of yacc.c */
3369 #line 634 "glsl_parser.ypp"
3372 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_logic_xor
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3373 (yyval
.expression
)->set_location(yylloc
);
3379 /* Line 1464 of yacc.c */
3380 #line 644 "glsl_parser.ypp"
3383 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_logic_or
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3384 (yyval
.expression
)->set_location(yylloc
);
3390 /* Line 1464 of yacc.c */
3391 #line 654 "glsl_parser.ypp"
3394 (yyval
.expression
) = new(ctx
) ast_expression(ast_conditional
, (yyvsp
[(1) - (5)].expression
), (yyvsp
[(3) - (5)].expression
), (yyvsp
[(5) - (5)].expression
));
3395 (yyval
.expression
)->set_location(yylloc
);
3401 /* Line 1464 of yacc.c */
3402 #line 664 "glsl_parser.ypp"
3405 (yyval
.expression
) = new(ctx
) ast_expression((yyvsp
[(2) - (3)].n
), (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
), NULL
);
3406 (yyval
.expression
)->set_location(yylloc
);
3412 /* Line 1464 of yacc.c */
3413 #line 672 "glsl_parser.ypp"
3414 { (yyval
.n
) = ast_assign
; ;}
3419 /* Line 1464 of yacc.c */
3420 #line 673 "glsl_parser.ypp"
3421 { (yyval
.n
) = ast_mul_assign
; ;}
3426 /* Line 1464 of yacc.c */
3427 #line 674 "glsl_parser.ypp"
3428 { (yyval
.n
) = ast_div_assign
; ;}
3433 /* Line 1464 of yacc.c */
3434 #line 675 "glsl_parser.ypp"
3435 { (yyval
.n
) = ast_mod_assign
; ;}
3440 /* Line 1464 of yacc.c */
3441 #line 676 "glsl_parser.ypp"
3442 { (yyval
.n
) = ast_add_assign
; ;}
3447 /* Line 1464 of yacc.c */
3448 #line 677 "glsl_parser.ypp"
3449 { (yyval
.n
) = ast_sub_assign
; ;}
3454 /* Line 1464 of yacc.c */
3455 #line 678 "glsl_parser.ypp"
3456 { (yyval
.n
) = ast_ls_assign
; ;}
3461 /* Line 1464 of yacc.c */
3462 #line 679 "glsl_parser.ypp"
3463 { (yyval
.n
) = ast_rs_assign
; ;}
3468 /* Line 1464 of yacc.c */
3469 #line 680 "glsl_parser.ypp"
3470 { (yyval
.n
) = ast_and_assign
; ;}
3475 /* Line 1464 of yacc.c */
3476 #line 681 "glsl_parser.ypp"
3477 { (yyval
.n
) = ast_xor_assign
; ;}
3482 /* Line 1464 of yacc.c */
3483 #line 682 "glsl_parser.ypp"
3484 { (yyval
.n
) = ast_or_assign
; ;}
3489 /* Line 1464 of yacc.c */
3490 #line 687 "glsl_parser.ypp"
3492 (yyval
.expression
) = (yyvsp
[(1) - (1)].expression
);
3498 /* Line 1464 of yacc.c */
3499 #line 691 "glsl_parser.ypp"
3502 if ((yyvsp
[(1) - (3)].expression
)->oper
!= ast_sequence
) {
3503 (yyval
.expression
) = new(ctx
) ast_expression(ast_sequence
, NULL
, NULL
, NULL
);
3504 (yyval
.expression
)->set_location(yylloc
);
3505 (yyval
.expression
)->expressions
.push_tail(& (yyvsp
[(1) - (3)].expression
)->link
);
3507 (yyval
.expression
) = (yyvsp
[(1) - (3)].expression
);
3510 (yyval
.expression
)->expressions
.push_tail(& (yyvsp
[(3) - (3)].expression
)->link
);
3516 /* Line 1464 of yacc.c */
3517 #line 711 "glsl_parser.ypp"
3519 (yyval
.node
) = (yyvsp
[(1) - (2)].function
);
3525 /* Line 1464 of yacc.c */
3526 #line 715 "glsl_parser.ypp"
3528 (yyval
.node
) = (yyvsp
[(1) - (2)].declarator_list
);
3534 /* Line 1464 of yacc.c */
3535 #line 719 "glsl_parser.ypp"
3537 (yyvsp
[(3) - (4)].type_specifier
)->precision
= (yyvsp
[(2) - (4)].n
);
3538 (yyvsp
[(3) - (4)].type_specifier
)->is_precision_statement
= true;
3539 (yyval
.node
) = (yyvsp
[(3) - (4)].type_specifier
);
3545 /* Line 1464 of yacc.c */
3546 #line 737 "glsl_parser.ypp"
3548 (yyval
.function
) = (yyvsp
[(1) - (2)].function
);
3549 (yyval
.function
)->parameters
.push_tail(& (yyvsp
[(2) - (2)].parameter_declarator
)->link
);
3555 /* Line 1464 of yacc.c */
3556 #line 742 "glsl_parser.ypp"
3558 (yyval
.function
) = (yyvsp
[(1) - (3)].function
);
3559 (yyval
.function
)->parameters
.push_tail(& (yyvsp
[(3) - (3)].parameter_declarator
)->link
);
3565 /* Line 1464 of yacc.c */
3566 #line 750 "glsl_parser.ypp"
3569 (yyval
.function
) = new(ctx
) ast_function();
3570 (yyval
.function
)->set_location(yylloc
);
3571 (yyval
.function
)->return_type
= (yyvsp
[(1) - (3)].fully_specified_type
);
3572 (yyval
.function
)->identifier
= (yyvsp
[(2) - (3)].identifier
);
3578 /* Line 1464 of yacc.c */
3579 #line 761 "glsl_parser.ypp"
3582 (yyval
.parameter_declarator
) = new(ctx
) ast_parameter_declarator();
3583 (yyval
.parameter_declarator
)->set_location(yylloc
);
3584 (yyval
.parameter_declarator
)->type
= new(ctx
) ast_fully_specified_type();
3585 (yyval
.parameter_declarator
)->type
->set_location(yylloc
);
3586 (yyval
.parameter_declarator
)->type
->specifier
= (yyvsp
[(1) - (2)].type_specifier
);
3587 (yyval
.parameter_declarator
)->identifier
= (yyvsp
[(2) - (2)].identifier
);
3593 /* Line 1464 of yacc.c */
3594 #line 771 "glsl_parser.ypp"
3597 (yyval
.parameter_declarator
) = new(ctx
) ast_parameter_declarator();
3598 (yyval
.parameter_declarator
)->set_location(yylloc
);
3599 (yyval
.parameter_declarator
)->type
= new(ctx
) ast_fully_specified_type();
3600 (yyval
.parameter_declarator
)->type
->set_location(yylloc
);
3601 (yyval
.parameter_declarator
)->type
->specifier
= (yyvsp
[(1) - (5)].type_specifier
);
3602 (yyval
.parameter_declarator
)->identifier
= (yyvsp
[(2) - (5)].identifier
);
3603 (yyval
.parameter_declarator
)->is_array
= true;
3604 (yyval
.parameter_declarator
)->array_size
= (yyvsp
[(4) - (5)].expression
);
3610 /* Line 1464 of yacc.c */
3611 #line 786 "glsl_parser.ypp"
3613 (yyvsp
[(1) - (3)].type_qualifier
).flags
.i
|= (yyvsp
[(2) - (3)].type_qualifier
).flags
.i
;
3615 (yyval
.parameter_declarator
) = (yyvsp
[(3) - (3)].parameter_declarator
);
3616 (yyval
.parameter_declarator
)->type
->qualifier
= (yyvsp
[(1) - (3)].type_qualifier
);
3622 /* Line 1464 of yacc.c */
3623 #line 793 "glsl_parser.ypp"
3625 (yyval
.parameter_declarator
) = (yyvsp
[(2) - (2)].parameter_declarator
);
3626 (yyval
.parameter_declarator
)->type
->qualifier
= (yyvsp
[(1) - (2)].type_qualifier
);
3632 /* Line 1464 of yacc.c */
3633 #line 798 "glsl_parser.ypp"
3636 (yyvsp
[(1) - (3)].type_qualifier
).flags
.i
|= (yyvsp
[(2) - (3)].type_qualifier
).flags
.i
;
3638 (yyval
.parameter_declarator
) = new(ctx
) ast_parameter_declarator();
3639 (yyval
.parameter_declarator
)->set_location(yylloc
);
3640 (yyval
.parameter_declarator
)->type
= new(ctx
) ast_fully_specified_type();
3641 (yyval
.parameter_declarator
)->type
->qualifier
= (yyvsp
[(1) - (3)].type_qualifier
);
3642 (yyval
.parameter_declarator
)->type
->specifier
= (yyvsp
[(3) - (3)].type_specifier
);
3648 /* Line 1464 of yacc.c */
3649 #line 809 "glsl_parser.ypp"
3652 (yyval
.parameter_declarator
) = new(ctx
) ast_parameter_declarator();
3653 (yyval
.parameter_declarator
)->set_location(yylloc
);
3654 (yyval
.parameter_declarator
)->type
= new(ctx
) ast_fully_specified_type();
3655 (yyval
.parameter_declarator
)->type
->qualifier
= (yyvsp
[(1) - (2)].type_qualifier
);
3656 (yyval
.parameter_declarator
)->type
->specifier
= (yyvsp
[(2) - (2)].type_specifier
);
3662 /* Line 1464 of yacc.c */
3663 #line 821 "glsl_parser.ypp"
3665 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
3671 /* Line 1464 of yacc.c */
3672 #line 825 "glsl_parser.ypp"
3674 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
3675 (yyval
.type_qualifier
).flags
.q
.in
= 1;
3681 /* Line 1464 of yacc.c */
3682 #line 830 "glsl_parser.ypp"
3684 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
3685 (yyval
.type_qualifier
).flags
.q
.out
= 1;
3691 /* Line 1464 of yacc.c */
3692 #line 835 "glsl_parser.ypp"
3694 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
3695 (yyval
.type_qualifier
).flags
.q
.in
= 1;
3696 (yyval
.type_qualifier
).flags
.q
.out
= 1;
3702 /* Line 1464 of yacc.c */
3703 #line 849 "glsl_parser.ypp"
3706 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(3) - (3)].identifier
), false, NULL
, NULL
);
3707 decl
->set_location(yylloc
);
3709 (yyval
.declarator_list
) = (yyvsp
[(1) - (3)].declarator_list
);
3710 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3716 /* Line 1464 of yacc.c */
3717 #line 858 "glsl_parser.ypp"
3720 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(3) - (5)].identifier
), true, NULL
, NULL
);
3721 decl
->set_location(yylloc
);
3723 (yyval
.declarator_list
) = (yyvsp
[(1) - (5)].declarator_list
);
3724 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3730 /* Line 1464 of yacc.c */
3731 #line 867 "glsl_parser.ypp"
3734 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(3) - (6)].identifier
), true, (yyvsp
[(5) - (6)].expression
), NULL
);
3735 decl
->set_location(yylloc
);
3737 (yyval
.declarator_list
) = (yyvsp
[(1) - (6)].declarator_list
);
3738 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3744 /* Line 1464 of yacc.c */
3745 #line 876 "glsl_parser.ypp"
3748 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(3) - (7)].identifier
), true, NULL
, (yyvsp
[(7) - (7)].expression
));
3749 decl
->set_location(yylloc
);
3751 (yyval
.declarator_list
) = (yyvsp
[(1) - (7)].declarator_list
);
3752 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3758 /* Line 1464 of yacc.c */
3759 #line 885 "glsl_parser.ypp"
3762 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(3) - (8)].identifier
), true, (yyvsp
[(5) - (8)].expression
), (yyvsp
[(8) - (8)].expression
));
3763 decl
->set_location(yylloc
);
3765 (yyval
.declarator_list
) = (yyvsp
[(1) - (8)].declarator_list
);
3766 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3772 /* Line 1464 of yacc.c */
3773 #line 894 "glsl_parser.ypp"
3776 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(3) - (5)].identifier
), false, NULL
, (yyvsp
[(5) - (5)].expression
));
3777 decl
->set_location(yylloc
);
3779 (yyval
.declarator_list
) = (yyvsp
[(1) - (5)].declarator_list
);
3780 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3786 /* Line 1464 of yacc.c */
3787 #line 907 "glsl_parser.ypp"
3790 if ((yyvsp
[(1) - (1)].fully_specified_type
)->specifier
->type_specifier
!= ast_struct
) {
3791 _mesa_glsl_error(& (yylsp
[(1) - (1)]), state
, "empty declaration list\n");
3794 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list((yyvsp
[(1) - (1)].fully_specified_type
));
3795 (yyval
.declarator_list
)->set_location(yylloc
);
3802 /* Line 1464 of yacc.c */
3803 #line 918 "glsl_parser.ypp"
3806 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(2) - (2)].identifier
), false, NULL
, NULL
);
3808 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list((yyvsp
[(1) - (2)].fully_specified_type
));
3809 (yyval
.declarator_list
)->set_location(yylloc
);
3810 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3816 /* Line 1464 of yacc.c */
3817 #line 927 "glsl_parser.ypp"
3820 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(2) - (4)].identifier
), true, NULL
, NULL
);
3822 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list((yyvsp
[(1) - (4)].fully_specified_type
));
3823 (yyval
.declarator_list
)->set_location(yylloc
);
3824 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3830 /* Line 1464 of yacc.c */
3831 #line 936 "glsl_parser.ypp"
3834 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(2) - (5)].identifier
), true, (yyvsp
[(4) - (5)].expression
), NULL
);
3836 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list((yyvsp
[(1) - (5)].fully_specified_type
));
3837 (yyval
.declarator_list
)->set_location(yylloc
);
3838 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3844 /* Line 1464 of yacc.c */
3845 #line 945 "glsl_parser.ypp"
3848 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(2) - (6)].identifier
), true, NULL
, (yyvsp
[(6) - (6)].expression
));
3850 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list((yyvsp
[(1) - (6)].fully_specified_type
));
3851 (yyval
.declarator_list
)->set_location(yylloc
);
3852 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3858 /* Line 1464 of yacc.c */
3859 #line 954 "glsl_parser.ypp"
3862 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(2) - (7)].identifier
), true, (yyvsp
[(4) - (7)].expression
), (yyvsp
[(7) - (7)].expression
));
3864 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list((yyvsp
[(1) - (7)].fully_specified_type
));
3865 (yyval
.declarator_list
)->set_location(yylloc
);
3866 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3872 /* Line 1464 of yacc.c */
3873 #line 963 "glsl_parser.ypp"
3876 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(2) - (4)].identifier
), false, NULL
, (yyvsp
[(4) - (4)].expression
));
3878 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list((yyvsp
[(1) - (4)].fully_specified_type
));
3879 (yyval
.declarator_list
)->set_location(yylloc
);
3880 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3886 /* Line 1464 of yacc.c */
3887 #line 972 "glsl_parser.ypp"
3890 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(2) - (2)].identifier
), false, NULL
, NULL
);
3892 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list(NULL
);
3893 (yyval
.declarator_list
)->set_location(yylloc
);
3894 (yyval
.declarator_list
)->invariant
= true;
3896 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3902 /* Line 1464 of yacc.c */
3903 #line 986 "glsl_parser.ypp"
3906 (yyval
.fully_specified_type
) = new(ctx
) ast_fully_specified_type();
3907 (yyval
.fully_specified_type
)->set_location(yylloc
);
3908 (yyval
.fully_specified_type
)->specifier
= (yyvsp
[(1) - (1)].type_specifier
);
3914 /* Line 1464 of yacc.c */
3915 #line 993 "glsl_parser.ypp"
3918 (yyval
.fully_specified_type
) = new(ctx
) ast_fully_specified_type();
3919 (yyval
.fully_specified_type
)->set_location(yylloc
);
3920 (yyval
.fully_specified_type
)->qualifier
= (yyvsp
[(1) - (2)].type_qualifier
);
3921 (yyval
.fully_specified_type
)->specifier
= (yyvsp
[(2) - (2)].type_specifier
);
3927 /* Line 1464 of yacc.c */
3928 #line 1004 "glsl_parser.ypp"
3930 (yyval
.type_qualifier
) = (yyvsp
[(3) - (4)].type_qualifier
);
3936 /* Line 1464 of yacc.c */
3937 #line 1012 "glsl_parser.ypp"
3939 if (((yyvsp
[(1) - (3)].type_qualifier
).flags
.i
& (yyvsp
[(3) - (3)].type_qualifier
).flags
.i
) != 0) {
3940 _mesa_glsl_error(& (yylsp
[(3) - (3)]), state
,
3941 "duplicate layout qualifiers used\n");
3945 (yyval
.type_qualifier
).flags
.i
= (yyvsp
[(1) - (3)].type_qualifier
).flags
.i
| (yyvsp
[(3) - (3)].type_qualifier
).flags
.i
;
3947 if ((yyvsp
[(1) - (3)].type_qualifier
).flags
.q
.explicit_location
)
3948 (yyval
.type_qualifier
).location
= (yyvsp
[(1) - (3)].type_qualifier
).location
;
3950 if ((yyvsp
[(3) - (3)].type_qualifier
).flags
.q
.explicit_location
)
3951 (yyval
.type_qualifier
).location
= (yyvsp
[(3) - (3)].type_qualifier
).location
;
3957 /* Line 1464 of yacc.c */
3958 #line 1031 "glsl_parser.ypp"
3960 bool got_one
= false;
3962 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
3964 /* Layout qualifiers for ARB_fragment_coord_conventions. */
3965 if (!got_one
&& state
->ARB_fragment_coord_conventions_enable
) {
3966 if (strcmp((yyvsp
[(1) - (1)].identifier
), "origin_upper_left") == 0) {
3968 (yyval
.type_qualifier
).flags
.q
.origin_upper_left
= 1;
3969 } else if (strcmp((yyvsp
[(1) - (1)].identifier
), "pixel_center_integer") == 0) {
3971 (yyval
.type_qualifier
).flags
.q
.pixel_center_integer
= 1;
3974 if (got_one
&& state
->ARB_fragment_coord_conventions_warn
) {
3975 _mesa_glsl_warning(& (yylsp
[(1) - (1)]), state
,
3976 "GL_ARB_fragment_coord_conventions layout "
3977 "identifier `%s' used\n", (yyvsp
[(1) - (1)].identifier
));
3981 /* Layout qualifiers for AMD_conservative_depth. */
3982 if (!got_one
&& state
->AMD_conservative_depth_enable
) {
3983 if (strcmp((yyvsp
[(1) - (1)].identifier
), "depth_any") == 0) {
3985 (yyval
.type_qualifier
).flags
.q
.depth_any
= 1;
3986 } else if (strcmp((yyvsp
[(1) - (1)].identifier
), "depth_greater") == 0) {
3988 (yyval
.type_qualifier
).flags
.q
.depth_greater
= 1;
3989 } else if (strcmp((yyvsp
[(1) - (1)].identifier
), "depth_less") == 0) {
3991 (yyval
.type_qualifier
).flags
.q
.depth_less
= 1;
3992 } else if (strcmp((yyvsp
[(1) - (1)].identifier
), "depth_unchanged") == 0) {
3994 (yyval
.type_qualifier
).flags
.q
.depth_unchanged
= 1;
3997 if (got_one
&& state
->AMD_conservative_depth_warn
) {
3998 _mesa_glsl_warning(& (yylsp
[(1) - (1)]), state
,
3999 "GL_AMD_conservative_depth "
4000 "layout qualifier `%s' is used\n", (yyvsp
[(1) - (1)].identifier
));
4005 _mesa_glsl_error(& (yylsp
[(1) - (1)]), state
, "unrecognized layout identifier "
4006 "`%s'\n", (yyvsp
[(1) - (1)].identifier
));
4014 /* Line 1464 of yacc.c */
4015 #line 1083 "glsl_parser.ypp"
4017 bool got_one
= false;
4019 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
4021 if (state
->ARB_explicit_attrib_location_enable
) {
4022 /* FINISHME: Handle 'index' once GL_ARB_blend_func_exteneded and
4023 * FINISHME: GLSL 1.30 (or later) are supported.
4025 if (strcmp("location", (yyvsp
[(1) - (3)].identifier
)) == 0) {
4028 (yyval
.type_qualifier
).flags
.q
.explicit_location
= 1;
4030 if ((yyvsp
[(3) - (3)].n
) >= 0) {
4031 (yyval
.type_qualifier
).location
= (yyvsp
[(3) - (3)].n
);
4033 _mesa_glsl_error(& (yylsp
[(3) - (3)]), state
,
4034 "invalid location %d specified\n", (yyvsp
[(3) - (3)].n
));
4040 /* If the identifier didn't match any known layout identifiers,
4044 _mesa_glsl_error(& (yylsp
[(1) - (3)]), state
, "unrecognized layout identifier "
4045 "`%s'\n", (yyvsp
[(1) - (3)].identifier
));
4047 } else if (state
->ARB_explicit_attrib_location_warn
) {
4048 _mesa_glsl_warning(& (yylsp
[(1) - (3)]), state
,
4049 "GL_ARB_explicit_attrib_location layout "
4050 "identifier `%s' used\n", (yyvsp
[(1) - (3)].identifier
));
4057 /* Line 1464 of yacc.c */
4058 #line 1124 "glsl_parser.ypp"
4060 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
4061 (yyval
.type_qualifier
).flags
.q
.smooth
= 1;
4067 /* Line 1464 of yacc.c */
4068 #line 1129 "glsl_parser.ypp"
4070 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
4071 (yyval
.type_qualifier
).flags
.q
.flat
= 1;
4077 /* Line 1464 of yacc.c */
4078 #line 1134 "glsl_parser.ypp"
4080 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
4081 (yyval
.type_qualifier
).flags
.q
.noperspective
= 1;
4087 /* Line 1464 of yacc.c */
4088 #line 1142 "glsl_parser.ypp"
4090 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
4091 (yyval
.type_qualifier
).flags
.q
.constant
= 1;
4097 /* Line 1464 of yacc.c */
4098 #line 1152 "glsl_parser.ypp"
4100 (yyval
.type_qualifier
) = (yyvsp
[(1) - (2)].type_qualifier
);
4101 (yyval
.type_qualifier
).flags
.i
|= (yyvsp
[(2) - (2)].type_qualifier
).flags
.i
;
4107 /* Line 1464 of yacc.c */
4108 #line 1158 "glsl_parser.ypp"
4110 (yyval
.type_qualifier
) = (yyvsp
[(1) - (2)].type_qualifier
);
4111 (yyval
.type_qualifier
).flags
.i
|= (yyvsp
[(2) - (2)].type_qualifier
).flags
.i
;
4117 /* Line 1464 of yacc.c */
4118 #line 1163 "glsl_parser.ypp"
4120 (yyval
.type_qualifier
) = (yyvsp
[(2) - (2)].type_qualifier
);
4121 (yyval
.type_qualifier
).flags
.q
.invariant
= 1;
4127 /* Line 1464 of yacc.c */
4128 #line 1168 "glsl_parser.ypp"
4130 (yyval
.type_qualifier
) = (yyvsp
[(2) - (3)].type_qualifier
);
4131 (yyval
.type_qualifier
).flags
.i
|= (yyvsp
[(3) - (3)].type_qualifier
).flags
.i
;
4132 (yyval
.type_qualifier
).flags
.q
.invariant
= 1;
4138 /* Line 1464 of yacc.c */
4139 #line 1174 "glsl_parser.ypp"
4141 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
4142 (yyval
.type_qualifier
).flags
.q
.invariant
= 1;
4148 /* Line 1464 of yacc.c */
4149 #line 1182 "glsl_parser.ypp"
4151 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
4152 (yyval
.type_qualifier
).flags
.q
.constant
= 1;
4158 /* Line 1464 of yacc.c */
4159 #line 1187 "glsl_parser.ypp"
4161 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
4162 (yyval
.type_qualifier
).flags
.q
.attribute
= 1;
4168 /* Line 1464 of yacc.c */
4169 #line 1192 "glsl_parser.ypp"
4171 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
4172 (yyval
.type_qualifier
).flags
.q
.varying
= 1;
4178 /* Line 1464 of yacc.c */
4179 #line 1197 "glsl_parser.ypp"
4181 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
4182 (yyval
.type_qualifier
).flags
.q
.centroid
= 1;
4183 (yyval
.type_qualifier
).flags
.q
.varying
= 1;
4189 /* Line 1464 of yacc.c */
4190 #line 1203 "glsl_parser.ypp"
4192 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
4193 (yyval
.type_qualifier
).flags
.q
.in
= 1;
4199 /* Line 1464 of yacc.c */
4200 #line 1208 "glsl_parser.ypp"
4202 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
4203 (yyval
.type_qualifier
).flags
.q
.out
= 1;
4209 /* Line 1464 of yacc.c */
4210 #line 1213 "glsl_parser.ypp"
4212 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
4213 (yyval
.type_qualifier
).flags
.q
.centroid
= 1; (yyval
.type_qualifier
).flags
.q
.in
= 1;
4219 /* Line 1464 of yacc.c */
4220 #line 1218 "glsl_parser.ypp"
4222 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
4223 (yyval
.type_qualifier
).flags
.q
.centroid
= 1; (yyval
.type_qualifier
).flags
.q
.out
= 1;
4229 /* Line 1464 of yacc.c */
4230 #line 1223 "glsl_parser.ypp"
4232 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
4233 (yyval
.type_qualifier
).flags
.q
.uniform
= 1;
4239 /* Line 1464 of yacc.c */
4240 #line 1231 "glsl_parser.ypp"
4242 (yyval
.type_specifier
) = (yyvsp
[(1) - (1)].type_specifier
);
4248 /* Line 1464 of yacc.c */
4249 #line 1235 "glsl_parser.ypp"
4251 (yyval
.type_specifier
) = (yyvsp
[(2) - (2)].type_specifier
);
4252 (yyval
.type_specifier
)->precision
= (yyvsp
[(1) - (2)].n
);
4258 /* Line 1464 of yacc.c */
4259 #line 1244 "glsl_parser.ypp"
4261 (yyval
.type_specifier
) = (yyvsp
[(1) - (3)].type_specifier
);
4262 (yyval
.type_specifier
)->is_array
= true;
4263 (yyval
.type_specifier
)->array_size
= NULL
;
4269 /* Line 1464 of yacc.c */
4270 #line 1250 "glsl_parser.ypp"
4272 (yyval
.type_specifier
) = (yyvsp
[(1) - (4)].type_specifier
);
4273 (yyval
.type_specifier
)->is_array
= true;
4274 (yyval
.type_specifier
)->array_size
= (yyvsp
[(3) - (4)].expression
);
4280 /* Line 1464 of yacc.c */
4281 #line 1259 "glsl_parser.ypp"
4284 (yyval
.type_specifier
) = new(ctx
) ast_type_specifier((yyvsp
[(1) - (1)].n
));
4285 (yyval
.type_specifier
)->set_location(yylloc
);
4291 /* Line 1464 of yacc.c */
4292 #line 1265 "glsl_parser.ypp"
4295 (yyval
.type_specifier
) = new(ctx
) ast_type_specifier((yyvsp
[(1) - (1)].struct_specifier
));
4296 (yyval
.type_specifier
)->set_location(yylloc
);
4302 /* Line 1464 of yacc.c */
4303 #line 1271 "glsl_parser.ypp"
4306 (yyval
.type_specifier
) = new(ctx
) ast_type_specifier((yyvsp
[(1) - (1)].identifier
));
4307 (yyval
.type_specifier
)->set_location(yylloc
);
4313 /* Line 1464 of yacc.c */
4314 #line 1279 "glsl_parser.ypp"
4315 { (yyval
.n
) = ast_void
; ;}
4320 /* Line 1464 of yacc.c */
4321 #line 1280 "glsl_parser.ypp"
4322 { (yyval
.n
) = ast_float
; ;}
4327 /* Line 1464 of yacc.c */
4328 #line 1281 "glsl_parser.ypp"
4329 { (yyval
.n
) = ast_int
; ;}
4334 /* Line 1464 of yacc.c */
4335 #line 1282 "glsl_parser.ypp"
4336 { (yyval
.n
) = ast_uint
; ;}
4341 /* Line 1464 of yacc.c */
4342 #line 1283 "glsl_parser.ypp"
4343 { (yyval
.n
) = ast_bool
; ;}
4348 /* Line 1464 of yacc.c */
4349 #line 1284 "glsl_parser.ypp"
4350 { (yyval
.n
) = ast_vec2
; ;}
4355 /* Line 1464 of yacc.c */
4356 #line 1285 "glsl_parser.ypp"
4357 { (yyval
.n
) = ast_vec3
; ;}
4362 /* Line 1464 of yacc.c */
4363 #line 1286 "glsl_parser.ypp"
4364 { (yyval
.n
) = ast_vec4
; ;}
4369 /* Line 1464 of yacc.c */
4370 #line 1287 "glsl_parser.ypp"
4371 { (yyval
.n
) = ast_bvec2
; ;}
4376 /* Line 1464 of yacc.c */
4377 #line 1288 "glsl_parser.ypp"
4378 { (yyval
.n
) = ast_bvec3
; ;}
4383 /* Line 1464 of yacc.c */
4384 #line 1289 "glsl_parser.ypp"
4385 { (yyval
.n
) = ast_bvec4
; ;}
4390 /* Line 1464 of yacc.c */
4391 #line 1290 "glsl_parser.ypp"
4392 { (yyval
.n
) = ast_ivec2
; ;}
4397 /* Line 1464 of yacc.c */
4398 #line 1291 "glsl_parser.ypp"
4399 { (yyval
.n
) = ast_ivec3
; ;}
4404 /* Line 1464 of yacc.c */
4405 #line 1292 "glsl_parser.ypp"
4406 { (yyval
.n
) = ast_ivec4
; ;}
4411 /* Line 1464 of yacc.c */
4412 #line 1293 "glsl_parser.ypp"
4413 { (yyval
.n
) = ast_uvec2
; ;}
4418 /* Line 1464 of yacc.c */
4419 #line 1294 "glsl_parser.ypp"
4420 { (yyval
.n
) = ast_uvec3
; ;}
4425 /* Line 1464 of yacc.c */
4426 #line 1295 "glsl_parser.ypp"
4427 { (yyval
.n
) = ast_uvec4
; ;}
4432 /* Line 1464 of yacc.c */
4433 #line 1296 "glsl_parser.ypp"
4434 { (yyval
.n
) = ast_mat2
; ;}
4439 /* Line 1464 of yacc.c */
4440 #line 1297 "glsl_parser.ypp"
4441 { (yyval
.n
) = ast_mat2x3
; ;}
4446 /* Line 1464 of yacc.c */
4447 #line 1298 "glsl_parser.ypp"
4448 { (yyval
.n
) = ast_mat2x4
; ;}
4453 /* Line 1464 of yacc.c */
4454 #line 1299 "glsl_parser.ypp"
4455 { (yyval
.n
) = ast_mat3x2
; ;}
4460 /* Line 1464 of yacc.c */
4461 #line 1300 "glsl_parser.ypp"
4462 { (yyval
.n
) = ast_mat3
; ;}
4467 /* Line 1464 of yacc.c */
4468 #line 1301 "glsl_parser.ypp"
4469 { (yyval
.n
) = ast_mat3x4
; ;}
4474 /* Line 1464 of yacc.c */
4475 #line 1302 "glsl_parser.ypp"
4476 { (yyval
.n
) = ast_mat4x2
; ;}
4481 /* Line 1464 of yacc.c */
4482 #line 1303 "glsl_parser.ypp"
4483 { (yyval
.n
) = ast_mat4x3
; ;}
4488 /* Line 1464 of yacc.c */
4489 #line 1304 "glsl_parser.ypp"
4490 { (yyval
.n
) = ast_mat4
; ;}
4495 /* Line 1464 of yacc.c */
4496 #line 1305 "glsl_parser.ypp"
4497 { (yyval
.n
) = ast_sampler1d
; ;}
4502 /* Line 1464 of yacc.c */
4503 #line 1306 "glsl_parser.ypp"
4504 { (yyval
.n
) = ast_sampler2d
; ;}
4509 /* Line 1464 of yacc.c */
4510 #line 1307 "glsl_parser.ypp"
4511 { (yyval
.n
) = ast_sampler2drect
; ;}
4516 /* Line 1464 of yacc.c */
4517 #line 1308 "glsl_parser.ypp"
4518 { (yyval
.n
) = ast_sampler3d
; ;}
4523 /* Line 1464 of yacc.c */
4524 #line 1309 "glsl_parser.ypp"
4525 { (yyval
.n
) = ast_samplercube
; ;}
4530 /* Line 1464 of yacc.c */
4531 #line 1310 "glsl_parser.ypp"
4532 { (yyval
.n
) = ast_sampler1dshadow
; ;}
4537 /* Line 1464 of yacc.c */
4538 #line 1311 "glsl_parser.ypp"
4539 { (yyval
.n
) = ast_sampler2dshadow
; ;}
4544 /* Line 1464 of yacc.c */
4545 #line 1312 "glsl_parser.ypp"
4546 { (yyval
.n
) = ast_sampler2drectshadow
; ;}
4551 /* Line 1464 of yacc.c */
4552 #line 1313 "glsl_parser.ypp"
4553 { (yyval
.n
) = ast_samplercubeshadow
; ;}
4558 /* Line 1464 of yacc.c */
4559 #line 1314 "glsl_parser.ypp"
4560 { (yyval
.n
) = ast_sampler1darray
; ;}
4565 /* Line 1464 of yacc.c */
4566 #line 1315 "glsl_parser.ypp"
4567 { (yyval
.n
) = ast_sampler2darray
; ;}
4572 /* Line 1464 of yacc.c */
4573 #line 1316 "glsl_parser.ypp"
4574 { (yyval
.n
) = ast_sampler1darrayshadow
; ;}
4579 /* Line 1464 of yacc.c */
4580 #line 1317 "glsl_parser.ypp"
4581 { (yyval
.n
) = ast_sampler2darrayshadow
; ;}
4586 /* Line 1464 of yacc.c */
4587 #line 1318 "glsl_parser.ypp"
4588 { (yyval
.n
) = ast_isampler1d
; ;}
4593 /* Line 1464 of yacc.c */
4594 #line 1319 "glsl_parser.ypp"
4595 { (yyval
.n
) = ast_isampler2d
; ;}
4600 /* Line 1464 of yacc.c */
4601 #line 1320 "glsl_parser.ypp"
4602 { (yyval
.n
) = ast_isampler3d
; ;}
4607 /* Line 1464 of yacc.c */
4608 #line 1321 "glsl_parser.ypp"
4609 { (yyval
.n
) = ast_isamplercube
; ;}
4614 /* Line 1464 of yacc.c */
4615 #line 1322 "glsl_parser.ypp"
4616 { (yyval
.n
) = ast_isampler1darray
; ;}
4621 /* Line 1464 of yacc.c */
4622 #line 1323 "glsl_parser.ypp"
4623 { (yyval
.n
) = ast_isampler2darray
; ;}
4628 /* Line 1464 of yacc.c */
4629 #line 1324 "glsl_parser.ypp"
4630 { (yyval
.n
) = ast_usampler1d
; ;}
4635 /* Line 1464 of yacc.c */
4636 #line 1325 "glsl_parser.ypp"
4637 { (yyval
.n
) = ast_usampler2d
; ;}
4642 /* Line 1464 of yacc.c */
4643 #line 1326 "glsl_parser.ypp"
4644 { (yyval
.n
) = ast_usampler3d
; ;}
4649 /* Line 1464 of yacc.c */
4650 #line 1327 "glsl_parser.ypp"
4651 { (yyval
.n
) = ast_usamplercube
; ;}
4656 /* Line 1464 of yacc.c */
4657 #line 1328 "glsl_parser.ypp"
4658 { (yyval
.n
) = ast_usampler1darray
; ;}
4663 /* Line 1464 of yacc.c */
4664 #line 1329 "glsl_parser.ypp"
4665 { (yyval
.n
) = ast_usampler2darray
; ;}
4670 /* Line 1464 of yacc.c */
4671 #line 1333 "glsl_parser.ypp"
4673 if (!state
->es_shader
&& state
->language_version
< 130)
4674 _mesa_glsl_error(& (yylsp
[(1) - (1)]), state
,
4675 "precision qualifier forbidden "
4676 "in %s (1.30 or later "
4678 state
->version_string
);
4680 (yyval
.n
) = ast_precision_high
;
4686 /* Line 1464 of yacc.c */
4687 #line 1343 "glsl_parser.ypp"
4689 if (!state
->es_shader
&& state
->language_version
< 130)
4690 _mesa_glsl_error(& (yylsp
[(1) - (1)]), state
,
4691 "precision qualifier forbidden "
4692 "in %s (1.30 or later "
4694 state
->version_string
);
4696 (yyval
.n
) = ast_precision_medium
;
4702 /* Line 1464 of yacc.c */
4703 #line 1353 "glsl_parser.ypp"
4705 if (!state
->es_shader
&& state
->language_version
< 130)
4706 _mesa_glsl_error(& (yylsp
[(1) - (1)]), state
,
4707 "precision qualifier forbidden "
4708 "in %s (1.30 or later "
4710 state
->version_string
);
4712 (yyval
.n
) = ast_precision_low
;
4718 /* Line 1464 of yacc.c */
4719 #line 1367 "glsl_parser.ypp"
4722 (yyval
.struct_specifier
) = new(ctx
) ast_struct_specifier((yyvsp
[(2) - (5)].identifier
), (yyvsp
[(4) - (5)].node
));
4723 (yyval
.struct_specifier
)->set_location(yylloc
);
4729 /* Line 1464 of yacc.c */
4730 #line 1373 "glsl_parser.ypp"
4733 (yyval
.struct_specifier
) = new(ctx
) ast_struct_specifier(NULL
, (yyvsp
[(3) - (4)].node
));
4734 (yyval
.struct_specifier
)->set_location(yylloc
);
4740 /* Line 1464 of yacc.c */
4741 #line 1382 "glsl_parser.ypp"
4743 (yyval
.node
) = (ast_node
*) (yyvsp
[(1) - (1)].declarator_list
);
4744 (yyvsp
[(1) - (1)].declarator_list
)->link
.self_link();
4750 /* Line 1464 of yacc.c */
4751 #line 1387 "glsl_parser.ypp"
4753 (yyval
.node
) = (ast_node
*) (yyvsp
[(1) - (2)].node
);
4754 (yyval
.node
)->link
.insert_before(& (yyvsp
[(2) - (2)].declarator_list
)->link
);
4760 /* Line 1464 of yacc.c */
4761 #line 1395 "glsl_parser.ypp"
4764 ast_fully_specified_type
*type
= new(ctx
) ast_fully_specified_type();
4765 type
->set_location(yylloc
);
4767 type
->specifier
= (yyvsp
[(1) - (3)].type_specifier
);
4768 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list(type
);
4769 (yyval
.declarator_list
)->set_location(yylloc
);
4771 (yyval
.declarator_list
)->declarations
.push_degenerate_list_at_head(& (yyvsp
[(2) - (3)].declaration
)->link
);
4777 /* Line 1464 of yacc.c */
4778 #line 1410 "glsl_parser.ypp"
4780 (yyval
.declaration
) = (yyvsp
[(1) - (1)].declaration
);
4781 (yyvsp
[(1) - (1)].declaration
)->link
.self_link();
4787 /* Line 1464 of yacc.c */
4788 #line 1415 "glsl_parser.ypp"
4790 (yyval
.declaration
) = (yyvsp
[(1) - (3)].declaration
);
4791 (yyval
.declaration
)->link
.insert_before(& (yyvsp
[(3) - (3)].declaration
)->link
);
4797 /* Line 1464 of yacc.c */
4798 #line 1423 "glsl_parser.ypp"
4801 (yyval
.declaration
) = new(ctx
) ast_declaration((yyvsp
[(1) - (1)].identifier
), false, NULL
, NULL
);
4802 (yyval
.declaration
)->set_location(yylloc
);
4808 /* Line 1464 of yacc.c */
4809 #line 1429 "glsl_parser.ypp"
4812 (yyval
.declaration
) = new(ctx
) ast_declaration((yyvsp
[(1) - (4)].identifier
), true, (yyvsp
[(3) - (4)].expression
), NULL
);
4813 (yyval
.declaration
)->set_location(yylloc
);
4819 /* Line 1464 of yacc.c */
4820 #line 1447 "glsl_parser.ypp"
4821 { (yyval
.node
) = (ast_node
*) (yyvsp
[(1) - (1)].compound_statement
); ;}
4826 /* Line 1464 of yacc.c */
4827 #line 1455 "glsl_parser.ypp"
4828 { (yyval
.node
) = NULL
; ;}
4833 /* Line 1464 of yacc.c */
4834 #line 1456 "glsl_parser.ypp"
4835 { (yyval
.node
) = NULL
; ;}
4840 /* Line 1464 of yacc.c */
4841 #line 1463 "glsl_parser.ypp"
4844 (yyval
.compound_statement
) = new(ctx
) ast_compound_statement(true, NULL
);
4845 (yyval
.compound_statement
)->set_location(yylloc
);
4851 /* Line 1464 of yacc.c */
4852 #line 1469 "glsl_parser.ypp"
4855 (yyval
.compound_statement
) = new(ctx
) ast_compound_statement(true, (yyvsp
[(2) - (3)].node
));
4856 (yyval
.compound_statement
)->set_location(yylloc
);
4862 /* Line 1464 of yacc.c */
4863 #line 1477 "glsl_parser.ypp"
4864 { (yyval
.node
) = (ast_node
*) (yyvsp
[(1) - (1)].compound_statement
); ;}
4869 /* Line 1464 of yacc.c */
4870 #line 1483 "glsl_parser.ypp"
4873 (yyval
.compound_statement
) = new(ctx
) ast_compound_statement(false, NULL
);
4874 (yyval
.compound_statement
)->set_location(yylloc
);
4880 /* Line 1464 of yacc.c */
4881 #line 1489 "glsl_parser.ypp"
4884 (yyval
.compound_statement
) = new(ctx
) ast_compound_statement(false, (yyvsp
[(2) - (3)].node
));
4885 (yyval
.compound_statement
)->set_location(yylloc
);
4891 /* Line 1464 of yacc.c */
4892 #line 1498 "glsl_parser.ypp"
4894 if ((yyvsp
[(1) - (1)].node
) == NULL
) {
4895 _mesa_glsl_error(& (yylsp
[(1) - (1)]), state
, "<nil> statement\n");
4896 assert((yyvsp
[(1) - (1)].node
) != NULL
);
4899 (yyval
.node
) = (yyvsp
[(1) - (1)].node
);
4900 (yyval
.node
)->link
.self_link();
4906 /* Line 1464 of yacc.c */
4907 #line 1508 "glsl_parser.ypp"
4909 if ((yyvsp
[(2) - (2)].node
) == NULL
) {
4910 _mesa_glsl_error(& (yylsp
[(2) - (2)]), state
, "<nil> statement\n");
4911 assert((yyvsp
[(2) - (2)].node
) != NULL
);
4913 (yyval
.node
) = (yyvsp
[(1) - (2)].node
);
4914 (yyval
.node
)->link
.insert_before(& (yyvsp
[(2) - (2)].node
)->link
);
4920 /* Line 1464 of yacc.c */
4921 #line 1520 "glsl_parser.ypp"
4924 (yyval
.node
) = new(ctx
) ast_expression_statement(NULL
);
4925 (yyval
.node
)->set_location(yylloc
);
4931 /* Line 1464 of yacc.c */
4932 #line 1526 "glsl_parser.ypp"
4935 (yyval
.node
) = new(ctx
) ast_expression_statement((yyvsp
[(1) - (2)].expression
));
4936 (yyval
.node
)->set_location(yylloc
);
4942 /* Line 1464 of yacc.c */
4943 #line 1535 "glsl_parser.ypp"
4945 (yyval
.node
) = new(state
) ast_selection_statement((yyvsp
[(3) - (5)].expression
), (yyvsp
[(5) - (5)].selection_rest_statement
).then_statement
,
4946 (yyvsp
[(5) - (5)].selection_rest_statement
).else_statement
);
4947 (yyval
.node
)->set_location(yylloc
);
4953 /* Line 1464 of yacc.c */
4954 #line 1544 "glsl_parser.ypp"
4956 (yyval
.selection_rest_statement
).then_statement
= (yyvsp
[(1) - (3)].node
);
4957 (yyval
.selection_rest_statement
).else_statement
= (yyvsp
[(3) - (3)].node
);
4963 /* Line 1464 of yacc.c */
4964 #line 1549 "glsl_parser.ypp"
4966 (yyval
.selection_rest_statement
).then_statement
= (yyvsp
[(1) - (1)].node
);
4967 (yyval
.selection_rest_statement
).else_statement
= NULL
;
4973 /* Line 1464 of yacc.c */
4974 #line 1557 "glsl_parser.ypp"
4976 (yyval
.node
) = (ast_node
*) (yyvsp
[(1) - (1)].expression
);
4982 /* Line 1464 of yacc.c */
4983 #line 1561 "glsl_parser.ypp"
4986 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(2) - (4)].identifier
), false, NULL
, (yyvsp
[(4) - (4)].expression
));
4987 ast_declarator_list
*declarator
= new(ctx
) ast_declarator_list((yyvsp
[(1) - (4)].fully_specified_type
));
4988 decl
->set_location(yylloc
);
4989 declarator
->set_location(yylloc
);
4991 declarator
->declarations
.push_tail(&decl
->link
);
4992 (yyval
.node
) = declarator
;
4998 /* Line 1464 of yacc.c */
4999 #line 1584 "glsl_parser.ypp"
5002 (yyval
.node
) = new(ctx
) ast_iteration_statement(ast_iteration_statement::ast_while
,
5003 NULL
, (yyvsp
[(3) - (5)].node
), NULL
, (yyvsp
[(5) - (5)].node
));
5004 (yyval
.node
)->set_location(yylloc
);
5010 /* Line 1464 of yacc.c */
5011 #line 1591 "glsl_parser.ypp"
5014 (yyval
.node
) = new(ctx
) ast_iteration_statement(ast_iteration_statement::ast_do_while
,
5015 NULL
, (yyvsp
[(5) - (7)].expression
), NULL
, (yyvsp
[(2) - (7)].node
));
5016 (yyval
.node
)->set_location(yylloc
);
5022 /* Line 1464 of yacc.c */
5023 #line 1598 "glsl_parser.ypp"
5026 (yyval
.node
) = new(ctx
) ast_iteration_statement(ast_iteration_statement::ast_for
,
5027 (yyvsp
[(3) - (6)].node
), (yyvsp
[(4) - (6)].for_rest_statement
).cond
, (yyvsp
[(4) - (6)].for_rest_statement
).rest
, (yyvsp
[(6) - (6)].node
));
5028 (yyval
.node
)->set_location(yylloc
);
5034 /* Line 1464 of yacc.c */
5035 #line 1614 "glsl_parser.ypp"
5037 (yyval
.node
) = NULL
;
5043 /* Line 1464 of yacc.c */
5044 #line 1621 "glsl_parser.ypp"
5046 (yyval
.for_rest_statement
).cond
= (yyvsp
[(1) - (2)].node
);
5047 (yyval
.for_rest_statement
).rest
= NULL
;
5053 /* Line 1464 of yacc.c */
5054 #line 1626 "glsl_parser.ypp"
5056 (yyval
.for_rest_statement
).cond
= (yyvsp
[(1) - (3)].node
);
5057 (yyval
.for_rest_statement
).rest
= (yyvsp
[(3) - (3)].expression
);
5063 /* Line 1464 of yacc.c */
5064 #line 1635 "glsl_parser.ypp"
5067 (yyval
.node
) = new(ctx
) ast_jump_statement(ast_jump_statement::ast_continue
, NULL
);
5068 (yyval
.node
)->set_location(yylloc
);
5074 /* Line 1464 of yacc.c */
5075 #line 1641 "glsl_parser.ypp"
5078 (yyval
.node
) = new(ctx
) ast_jump_statement(ast_jump_statement::ast_break
, NULL
);
5079 (yyval
.node
)->set_location(yylloc
);
5085 /* Line 1464 of yacc.c */
5086 #line 1647 "glsl_parser.ypp"
5089 (yyval
.node
) = new(ctx
) ast_jump_statement(ast_jump_statement::ast_return
, NULL
);
5090 (yyval
.node
)->set_location(yylloc
);
5096 /* Line 1464 of yacc.c */
5097 #line 1653 "glsl_parser.ypp"
5100 (yyval
.node
) = new(ctx
) ast_jump_statement(ast_jump_statement::ast_return
, (yyvsp
[(2) - (3)].expression
));
5101 (yyval
.node
)->set_location(yylloc
);
5107 /* Line 1464 of yacc.c */
5108 #line 1659 "glsl_parser.ypp"
5111 (yyval
.node
) = new(ctx
) ast_jump_statement(ast_jump_statement::ast_discard
, NULL
);
5112 (yyval
.node
)->set_location(yylloc
);
5118 /* Line 1464 of yacc.c */
5119 #line 1667 "glsl_parser.ypp"
5120 { (yyval
.node
) = (yyvsp
[(1) - (1)].function_definition
); ;}
5125 /* Line 1464 of yacc.c */
5126 #line 1668 "glsl_parser.ypp"
5127 { (yyval
.node
) = (yyvsp
[(1) - (1)].node
); ;}
5132 /* Line 1464 of yacc.c */
5133 #line 1669 "glsl_parser.ypp"
5134 { (yyval
.node
) = NULL
; ;}
5139 /* Line 1464 of yacc.c */
5140 #line 1674 "glsl_parser.ypp"
5143 (yyval
.function_definition
) = new(ctx
) ast_function_definition();
5144 (yyval
.function_definition
)->set_location(yylloc
);
5145 (yyval
.function_definition
)->prototype
= (yyvsp
[(1) - (2)].function
);
5146 (yyval
.function_definition
)->body
= (yyvsp
[(2) - (2)].compound_statement
);
5152 /* Line 1464 of yacc.c */
5153 #line 5154 "glsl_parser.cpp"
5156 YY_SYMBOL_PRINT ("-> $$ =", yyr1
[yyn
], &yyval
, &yyloc
);
5160 YY_STACK_PRINT (yyss
, yyssp
);
5165 /* Now `shift' the result of the reduction. Determine what state
5166 that goes to, based on the state we popped back to and the rule
5167 number reduced by. */
5171 yystate
= yypgoto
[yyn
- YYNTOKENS
] + *yyssp
;
5172 if (0 <= yystate
&& yystate
<= YYLAST
&& yycheck
[yystate
] == *yyssp
)
5173 yystate
= yytable
[yystate
];
5175 yystate
= yydefgoto
[yyn
- YYNTOKENS
];
5180 /*------------------------------------.
5181 | yyerrlab -- here on detecting error |
5182 `------------------------------------*/
5184 /* If not already recovering from an error, report this error. */
5188 #if ! YYERROR_VERBOSE
5189 yyerror (&yylloc
, state
, YY_("syntax error"));
5192 YYSIZE_T yysize
= yysyntax_error (0, yystate
, yychar
);
5193 if (yymsg_alloc
< yysize
&& yymsg_alloc
< YYSTACK_ALLOC_MAXIMUM
)
5195 YYSIZE_T yyalloc
= 2 * yysize
;
5196 if (! (yysize
<= yyalloc
&& yyalloc
<= YYSTACK_ALLOC_MAXIMUM
))
5197 yyalloc
= YYSTACK_ALLOC_MAXIMUM
;
5198 if (yymsg
!= yymsgbuf
)
5199 YYSTACK_FREE (yymsg
);
5200 yymsg
= (char *) YYSTACK_ALLOC (yyalloc
);
5202 yymsg_alloc
= yyalloc
;
5206 yymsg_alloc
= sizeof yymsgbuf
;
5210 if (0 < yysize
&& yysize
<= yymsg_alloc
)
5212 (void) yysyntax_error (yymsg
, yystate
, yychar
);
5213 yyerror (&yylloc
, state
, yymsg
);
5217 yyerror (&yylloc
, state
, YY_("syntax error"));
5219 goto yyexhaustedlab
;
5225 yyerror_range
[1] = yylloc
;
5227 if (yyerrstatus
== 3)
5229 /* If just tried and failed to reuse lookahead token after an
5230 error, discard it. */
5232 if (yychar
<= YYEOF
)
5234 /* Return failure if at end of input. */
5235 if (yychar
== YYEOF
)
5240 yydestruct ("Error: discarding",
5241 yytoken
, &yylval
, &yylloc
, state
);
5246 /* Else will try to reuse lookahead token after shifting the error
5251 /*---------------------------------------------------.
5252 | yyerrorlab -- error raised explicitly by YYERROR. |
5253 `---------------------------------------------------*/
5256 /* Pacify compilers like GCC when the user code never invokes
5257 YYERROR and the label yyerrorlab therefore never appears in user
5259 if (/*CONSTCOND*/ 0)
5262 yyerror_range
[1] = yylsp
[1-yylen
];
5263 /* Do not reclaim the symbols of the rule which action triggered
5267 YY_STACK_PRINT (yyss
, yyssp
);
5272 /*-------------------------------------------------------------.
5273 | yyerrlab1 -- common code for both syntax error and YYERROR. |
5274 `-------------------------------------------------------------*/
5276 yyerrstatus
= 3; /* Each real token shifted decrements this. */
5280 yyn
= yypact
[yystate
];
5281 if (yyn
!= YYPACT_NINF
)
5284 if (0 <= yyn
&& yyn
<= YYLAST
&& yycheck
[yyn
] == YYTERROR
)
5292 /* Pop the current state because it cannot handle the error token. */
5296 yyerror_range
[1] = *yylsp
;
5297 yydestruct ("Error: popping",
5298 yystos
[yystate
], yyvsp
, yylsp
, state
);
5301 YY_STACK_PRINT (yyss
, yyssp
);
5306 yyerror_range
[2] = yylloc
;
5307 /* Using YYLLOC is tempting, but would change the location of
5308 the lookahead. YYLOC is available though. */
5309 YYLLOC_DEFAULT (yyloc
, yyerror_range
, 2);
5312 /* Shift the error token. */
5313 YY_SYMBOL_PRINT ("Shifting", yystos
[yyn
], yyvsp
, yylsp
);
5319 /*-------------------------------------.
5320 | yyacceptlab -- YYACCEPT comes here. |
5321 `-------------------------------------*/
5326 /*-----------------------------------.
5327 | yyabortlab -- YYABORT comes here. |
5328 `-----------------------------------*/
5333 #if !defined(yyoverflow) || YYERROR_VERBOSE
5334 /*-------------------------------------------------.
5335 | yyexhaustedlab -- memory exhaustion comes here. |
5336 `-------------------------------------------------*/
5338 yyerror (&yylloc
, state
, YY_("memory exhausted"));
5344 if (yychar
!= YYEMPTY
)
5345 yydestruct ("Cleanup: discarding lookahead",
5346 yytoken
, &yylval
, &yylloc
, state
);
5347 /* Do not reclaim the symbols of the rule which action triggered
5348 this YYABORT or YYACCEPT. */
5350 YY_STACK_PRINT (yyss
, yyssp
);
5351 while (yyssp
!= yyss
)
5353 yydestruct ("Cleanup: popping",
5354 yystos
[*yyssp
], yyvsp
, yylsp
, state
);
5359 YYSTACK_FREE (yyss
);
5362 if (yymsg
!= yymsgbuf
)
5363 YYSTACK_FREE (yymsg
);
5365 /* Make sure YYID is used. */
5366 return YYID (yyresult
);