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, 246, 247, 248, 249,
811 250, 262, 264, 268, 277, 285, 296, 300, 307, 314,
812 321, 328, 335, 342, 343, 349, 353, 360, 366, 375,
813 379, 383, 384, 393, 394, 398, 399, 403, 409, 421,
814 425, 431, 438, 449, 450, 456, 462, 472, 473, 474,
815 475, 479, 480, 486, 492, 501, 502, 508, 517, 518,
816 524, 533, 534, 540, 546, 552, 561, 562, 568, 577,
817 578, 587, 588, 597, 598, 607, 608, 617, 618, 627,
818 628, 637, 638, 647, 648, 657, 658, 659, 660, 661,
819 662, 663, 664, 665, 666, 667, 671, 675, 691, 695,
820 699, 703, 712, 716, 717, 721, 726, 734, 745, 755,
821 770, 777, 782, 793, 806, 809, 814, 819, 828, 832,
822 833, 842, 851, 860, 869, 878, 891, 902, 911, 920,
823 929, 938, 947, 956, 970, 977, 988, 995, 996, 1015,
824 1067, 1108, 1113, 1118, 1126, 1134, 1135, 1136, 1141, 1142,
825 1147, 1152, 1158, 1166, 1171, 1176, 1181, 1187, 1192, 1197,
826 1202, 1207, 1215, 1219, 1227, 1228, 1234, 1243, 1249, 1255,
827 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273,
828 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283,
829 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293,
830 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303,
831 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313,
832 1314, 1318, 1328, 1338, 1351, 1357, 1366, 1371, 1379, 1394,
833 1399, 1407, 1413, 1422, 1426, 1432, 1433, 1437, 1438, 1439,
834 1440, 1441, 1442, 1443, 1447, 1453, 1462, 1463, 1467, 1473,
835 1482, 1492, 1504, 1510, 1519, 1528, 1533, 1541, 1545, 1559,
836 1563, 1564, 1568, 1575, 1582, 1592, 1593, 1597, 1599, 1605,
837 1610, 1619, 1625, 1631, 1637, 1643, 1652, 1653, 1654, 1658
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 switch ((yyvsp
[(2) - (3)].n
)) {
2840 state
->es_shader
= true;
2844 /* FINISHME: Check against implementation support versions. */
2845 state
->language_version
= (yyvsp
[(2) - (3)].n
);
2846 state
->version_string
=
2847 ralloc_asprintf(state
, "GLSL%s %d.%02d",
2848 state
->es_shader
? " ES" : "",
2849 state
->language_version
/ 100,
2850 state
->language_version
% 100);
2853 _mesa_glsl_error(& (yylsp
[(2) - (3)]), state
, "Shading language version"
2854 "%u is not supported\n", (yyvsp
[(2) - (3)].n
));
2862 /* Line 1464 of yacc.c */
2863 #line 251 "glsl_parser.ypp"
2865 if (state
->language_version
< 120) {
2866 _mesa_glsl_warning(& (yylsp
[(1) - (2)]), state
,
2867 "pragma `invariant(all)' not supported in %s",
2868 state
->version_string
);
2870 state
->all_invariant
= true;
2877 /* Line 1464 of yacc.c */
2878 #line 269 "glsl_parser.ypp"
2880 if (!_mesa_glsl_process_extension((yyvsp
[(2) - (5)].identifier
), & (yylsp
[(2) - (5)]), (yyvsp
[(4) - (5)].identifier
), & (yylsp
[(4) - (5)]), state
)) {
2888 /* Line 1464 of yacc.c */
2889 #line 278 "glsl_parser.ypp"
2891 /* FINISHME: The NULL test is required because pragmas are set to
2892 * FINISHME: NULL. (See production rule for external_declaration.)
2894 if ((yyvsp
[(1) - (1)].node
) != NULL
)
2895 state
->translation_unit
.push_tail(& (yyvsp
[(1) - (1)].node
)->link
);
2901 /* Line 1464 of yacc.c */
2902 #line 286 "glsl_parser.ypp"
2904 /* FINISHME: The NULL test is required because pragmas are set to
2905 * FINISHME: NULL. (See production rule for external_declaration.)
2907 if ((yyvsp
[(2) - (2)].node
) != NULL
)
2908 state
->translation_unit
.push_tail(& (yyvsp
[(2) - (2)].node
)->link
);
2914 /* Line 1464 of yacc.c */
2915 #line 301 "glsl_parser.ypp"
2918 (yyval
.expression
) = new(ctx
) ast_expression(ast_identifier
, NULL
, NULL
, NULL
);
2919 (yyval
.expression
)->set_location(yylloc
);
2920 (yyval
.expression
)->primary_expression
.identifier
= (yyvsp
[(1) - (1)].identifier
);
2926 /* Line 1464 of yacc.c */
2927 #line 308 "glsl_parser.ypp"
2930 (yyval
.expression
) = new(ctx
) ast_expression(ast_int_constant
, NULL
, NULL
, NULL
);
2931 (yyval
.expression
)->set_location(yylloc
);
2932 (yyval
.expression
)->primary_expression
.int_constant
= (yyvsp
[(1) - (1)].n
);
2938 /* Line 1464 of yacc.c */
2939 #line 315 "glsl_parser.ypp"
2942 (yyval
.expression
) = new(ctx
) ast_expression(ast_uint_constant
, NULL
, NULL
, NULL
);
2943 (yyval
.expression
)->set_location(yylloc
);
2944 (yyval
.expression
)->primary_expression
.uint_constant
= (yyvsp
[(1) - (1)].n
);
2950 /* Line 1464 of yacc.c */
2951 #line 322 "glsl_parser.ypp"
2954 (yyval
.expression
) = new(ctx
) ast_expression(ast_float_constant
, NULL
, NULL
, NULL
);
2955 (yyval
.expression
)->set_location(yylloc
);
2956 (yyval
.expression
)->primary_expression
.float_constant
= (yyvsp
[(1) - (1)].real
);
2962 /* Line 1464 of yacc.c */
2963 #line 329 "glsl_parser.ypp"
2966 (yyval
.expression
) = new(ctx
) ast_expression(ast_bool_constant
, NULL
, NULL
, NULL
);
2967 (yyval
.expression
)->set_location(yylloc
);
2968 (yyval
.expression
)->primary_expression
.bool_constant
= (yyvsp
[(1) - (1)].n
);
2974 /* Line 1464 of yacc.c */
2975 #line 336 "glsl_parser.ypp"
2977 (yyval
.expression
) = (yyvsp
[(2) - (3)].expression
);
2983 /* Line 1464 of yacc.c */
2984 #line 344 "glsl_parser.ypp"
2987 (yyval
.expression
) = new(ctx
) ast_expression(ast_array_index
, (yyvsp
[(1) - (4)].expression
), (yyvsp
[(3) - (4)].expression
), NULL
);
2988 (yyval
.expression
)->set_location(yylloc
);
2994 /* Line 1464 of yacc.c */
2995 #line 350 "glsl_parser.ypp"
2997 (yyval
.expression
) = (yyvsp
[(1) - (1)].expression
);
3003 /* Line 1464 of yacc.c */
3004 #line 354 "glsl_parser.ypp"
3007 (yyval
.expression
) = new(ctx
) ast_expression(ast_field_selection
, (yyvsp
[(1) - (3)].expression
), NULL
, NULL
);
3008 (yyval
.expression
)->set_location(yylloc
);
3009 (yyval
.expression
)->primary_expression
.identifier
= (yyvsp
[(3) - (3)].identifier
);
3015 /* Line 1464 of yacc.c */
3016 #line 361 "glsl_parser.ypp"
3019 (yyval
.expression
) = new(ctx
) ast_expression(ast_post_inc
, (yyvsp
[(1) - (2)].expression
), NULL
, NULL
);
3020 (yyval
.expression
)->set_location(yylloc
);
3026 /* Line 1464 of yacc.c */
3027 #line 367 "glsl_parser.ypp"
3030 (yyval
.expression
) = new(ctx
) ast_expression(ast_post_dec
, (yyvsp
[(1) - (2)].expression
), NULL
, NULL
);
3031 (yyval
.expression
)->set_location(yylloc
);
3037 /* Line 1464 of yacc.c */
3038 #line 385 "glsl_parser.ypp"
3041 (yyval
.expression
) = new(ctx
) ast_expression(ast_field_selection
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
), NULL
);
3042 (yyval
.expression
)->set_location(yylloc
);
3048 /* Line 1464 of yacc.c */
3049 #line 404 "glsl_parser.ypp"
3051 (yyval
.expression
) = (yyvsp
[(1) - (2)].expression
);
3052 (yyval
.expression
)->set_location(yylloc
);
3053 (yyval
.expression
)->expressions
.push_tail(& (yyvsp
[(2) - (2)].expression
)->link
);
3059 /* Line 1464 of yacc.c */
3060 #line 410 "glsl_parser.ypp"
3062 (yyval
.expression
) = (yyvsp
[(1) - (3)].expression
);
3063 (yyval
.expression
)->set_location(yylloc
);
3064 (yyval
.expression
)->expressions
.push_tail(& (yyvsp
[(3) - (3)].expression
)->link
);
3070 /* Line 1464 of yacc.c */
3071 #line 426 "glsl_parser.ypp"
3074 (yyval
.expression
) = new(ctx
) ast_function_expression((yyvsp
[(1) - (1)].type_specifier
));
3075 (yyval
.expression
)->set_location(yylloc
);
3081 /* Line 1464 of yacc.c */
3082 #line 432 "glsl_parser.ypp"
3085 ast_expression
*callee
= new(ctx
) ast_expression((yyvsp
[(1) - (1)].identifier
));
3086 (yyval
.expression
) = new(ctx
) ast_function_expression(callee
);
3087 (yyval
.expression
)->set_location(yylloc
);
3093 /* Line 1464 of yacc.c */
3094 #line 439 "glsl_parser.ypp"
3097 ast_expression
*callee
= new(ctx
) ast_expression((yyvsp
[(1) - (1)].identifier
));
3098 (yyval
.expression
) = new(ctx
) ast_function_expression(callee
);
3099 (yyval
.expression
)->set_location(yylloc
);
3105 /* Line 1464 of yacc.c */
3106 #line 451 "glsl_parser.ypp"
3109 (yyval
.expression
) = new(ctx
) ast_expression(ast_pre_inc
, (yyvsp
[(2) - (2)].expression
), NULL
, NULL
);
3110 (yyval
.expression
)->set_location(yylloc
);
3116 /* Line 1464 of yacc.c */
3117 #line 457 "glsl_parser.ypp"
3120 (yyval
.expression
) = new(ctx
) ast_expression(ast_pre_dec
, (yyvsp
[(2) - (2)].expression
), NULL
, NULL
);
3121 (yyval
.expression
)->set_location(yylloc
);
3127 /* Line 1464 of yacc.c */
3128 #line 463 "glsl_parser.ypp"
3131 (yyval
.expression
) = new(ctx
) ast_expression((yyvsp
[(1) - (2)].n
), (yyvsp
[(2) - (2)].expression
), NULL
, NULL
);
3132 (yyval
.expression
)->set_location(yylloc
);
3138 /* Line 1464 of yacc.c */
3139 #line 472 "glsl_parser.ypp"
3140 { (yyval
.n
) = ast_plus
; ;}
3145 /* Line 1464 of yacc.c */
3146 #line 473 "glsl_parser.ypp"
3147 { (yyval
.n
) = ast_neg
; ;}
3152 /* Line 1464 of yacc.c */
3153 #line 474 "glsl_parser.ypp"
3154 { (yyval
.n
) = ast_logic_not
; ;}
3159 /* Line 1464 of yacc.c */
3160 #line 475 "glsl_parser.ypp"
3161 { (yyval
.n
) = ast_bit_not
; ;}
3166 /* Line 1464 of yacc.c */
3167 #line 481 "glsl_parser.ypp"
3170 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_mul
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3171 (yyval
.expression
)->set_location(yylloc
);
3177 /* Line 1464 of yacc.c */
3178 #line 487 "glsl_parser.ypp"
3181 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_div
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3182 (yyval
.expression
)->set_location(yylloc
);
3188 /* Line 1464 of yacc.c */
3189 #line 493 "glsl_parser.ypp"
3192 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_mod
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3193 (yyval
.expression
)->set_location(yylloc
);
3199 /* Line 1464 of yacc.c */
3200 #line 503 "glsl_parser.ypp"
3203 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_add
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3204 (yyval
.expression
)->set_location(yylloc
);
3210 /* Line 1464 of yacc.c */
3211 #line 509 "glsl_parser.ypp"
3214 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_sub
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3215 (yyval
.expression
)->set_location(yylloc
);
3221 /* Line 1464 of yacc.c */
3222 #line 519 "glsl_parser.ypp"
3225 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_lshift
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3226 (yyval
.expression
)->set_location(yylloc
);
3232 /* Line 1464 of yacc.c */
3233 #line 525 "glsl_parser.ypp"
3236 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_rshift
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3237 (yyval
.expression
)->set_location(yylloc
);
3243 /* Line 1464 of yacc.c */
3244 #line 535 "glsl_parser.ypp"
3247 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_less
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3248 (yyval
.expression
)->set_location(yylloc
);
3254 /* Line 1464 of yacc.c */
3255 #line 541 "glsl_parser.ypp"
3258 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_greater
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3259 (yyval
.expression
)->set_location(yylloc
);
3265 /* Line 1464 of yacc.c */
3266 #line 547 "glsl_parser.ypp"
3269 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_lequal
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3270 (yyval
.expression
)->set_location(yylloc
);
3276 /* Line 1464 of yacc.c */
3277 #line 553 "glsl_parser.ypp"
3280 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_gequal
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3281 (yyval
.expression
)->set_location(yylloc
);
3287 /* Line 1464 of yacc.c */
3288 #line 563 "glsl_parser.ypp"
3291 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_equal
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3292 (yyval
.expression
)->set_location(yylloc
);
3298 /* Line 1464 of yacc.c */
3299 #line 569 "glsl_parser.ypp"
3302 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_nequal
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3303 (yyval
.expression
)->set_location(yylloc
);
3309 /* Line 1464 of yacc.c */
3310 #line 579 "glsl_parser.ypp"
3313 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_bit_and
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3314 (yyval
.expression
)->set_location(yylloc
);
3320 /* Line 1464 of yacc.c */
3321 #line 589 "glsl_parser.ypp"
3324 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_bit_xor
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3325 (yyval
.expression
)->set_location(yylloc
);
3331 /* Line 1464 of yacc.c */
3332 #line 599 "glsl_parser.ypp"
3335 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_bit_or
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3336 (yyval
.expression
)->set_location(yylloc
);
3342 /* Line 1464 of yacc.c */
3343 #line 609 "glsl_parser.ypp"
3346 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_logic_and
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3347 (yyval
.expression
)->set_location(yylloc
);
3353 /* Line 1464 of yacc.c */
3354 #line 619 "glsl_parser.ypp"
3357 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_logic_xor
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3358 (yyval
.expression
)->set_location(yylloc
);
3364 /* Line 1464 of yacc.c */
3365 #line 629 "glsl_parser.ypp"
3368 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_logic_or
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3369 (yyval
.expression
)->set_location(yylloc
);
3375 /* Line 1464 of yacc.c */
3376 #line 639 "glsl_parser.ypp"
3379 (yyval
.expression
) = new(ctx
) ast_expression(ast_conditional
, (yyvsp
[(1) - (5)].expression
), (yyvsp
[(3) - (5)].expression
), (yyvsp
[(5) - (5)].expression
));
3380 (yyval
.expression
)->set_location(yylloc
);
3386 /* Line 1464 of yacc.c */
3387 #line 649 "glsl_parser.ypp"
3390 (yyval
.expression
) = new(ctx
) ast_expression((yyvsp
[(2) - (3)].n
), (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
), NULL
);
3391 (yyval
.expression
)->set_location(yylloc
);
3397 /* Line 1464 of yacc.c */
3398 #line 657 "glsl_parser.ypp"
3399 { (yyval
.n
) = ast_assign
; ;}
3404 /* Line 1464 of yacc.c */
3405 #line 658 "glsl_parser.ypp"
3406 { (yyval
.n
) = ast_mul_assign
; ;}
3411 /* Line 1464 of yacc.c */
3412 #line 659 "glsl_parser.ypp"
3413 { (yyval
.n
) = ast_div_assign
; ;}
3418 /* Line 1464 of yacc.c */
3419 #line 660 "glsl_parser.ypp"
3420 { (yyval
.n
) = ast_mod_assign
; ;}
3425 /* Line 1464 of yacc.c */
3426 #line 661 "glsl_parser.ypp"
3427 { (yyval
.n
) = ast_add_assign
; ;}
3432 /* Line 1464 of yacc.c */
3433 #line 662 "glsl_parser.ypp"
3434 { (yyval
.n
) = ast_sub_assign
; ;}
3439 /* Line 1464 of yacc.c */
3440 #line 663 "glsl_parser.ypp"
3441 { (yyval
.n
) = ast_ls_assign
; ;}
3446 /* Line 1464 of yacc.c */
3447 #line 664 "glsl_parser.ypp"
3448 { (yyval
.n
) = ast_rs_assign
; ;}
3453 /* Line 1464 of yacc.c */
3454 #line 665 "glsl_parser.ypp"
3455 { (yyval
.n
) = ast_and_assign
; ;}
3460 /* Line 1464 of yacc.c */
3461 #line 666 "glsl_parser.ypp"
3462 { (yyval
.n
) = ast_xor_assign
; ;}
3467 /* Line 1464 of yacc.c */
3468 #line 667 "glsl_parser.ypp"
3469 { (yyval
.n
) = ast_or_assign
; ;}
3474 /* Line 1464 of yacc.c */
3475 #line 672 "glsl_parser.ypp"
3477 (yyval
.expression
) = (yyvsp
[(1) - (1)].expression
);
3483 /* Line 1464 of yacc.c */
3484 #line 676 "glsl_parser.ypp"
3487 if ((yyvsp
[(1) - (3)].expression
)->oper
!= ast_sequence
) {
3488 (yyval
.expression
) = new(ctx
) ast_expression(ast_sequence
, NULL
, NULL
, NULL
);
3489 (yyval
.expression
)->set_location(yylloc
);
3490 (yyval
.expression
)->expressions
.push_tail(& (yyvsp
[(1) - (3)].expression
)->link
);
3492 (yyval
.expression
) = (yyvsp
[(1) - (3)].expression
);
3495 (yyval
.expression
)->expressions
.push_tail(& (yyvsp
[(3) - (3)].expression
)->link
);
3501 /* Line 1464 of yacc.c */
3502 #line 696 "glsl_parser.ypp"
3504 (yyval
.node
) = (yyvsp
[(1) - (2)].function
);
3510 /* Line 1464 of yacc.c */
3511 #line 700 "glsl_parser.ypp"
3513 (yyval
.node
) = (yyvsp
[(1) - (2)].declarator_list
);
3519 /* Line 1464 of yacc.c */
3520 #line 704 "glsl_parser.ypp"
3522 (yyvsp
[(3) - (4)].type_specifier
)->precision
= (yyvsp
[(2) - (4)].n
);
3523 (yyvsp
[(3) - (4)].type_specifier
)->is_precision_statement
= true;
3524 (yyval
.node
) = (yyvsp
[(3) - (4)].type_specifier
);
3530 /* Line 1464 of yacc.c */
3531 #line 722 "glsl_parser.ypp"
3533 (yyval
.function
) = (yyvsp
[(1) - (2)].function
);
3534 (yyval
.function
)->parameters
.push_tail(& (yyvsp
[(2) - (2)].parameter_declarator
)->link
);
3540 /* Line 1464 of yacc.c */
3541 #line 727 "glsl_parser.ypp"
3543 (yyval
.function
) = (yyvsp
[(1) - (3)].function
);
3544 (yyval
.function
)->parameters
.push_tail(& (yyvsp
[(3) - (3)].parameter_declarator
)->link
);
3550 /* Line 1464 of yacc.c */
3551 #line 735 "glsl_parser.ypp"
3554 (yyval
.function
) = new(ctx
) ast_function();
3555 (yyval
.function
)->set_location(yylloc
);
3556 (yyval
.function
)->return_type
= (yyvsp
[(1) - (3)].fully_specified_type
);
3557 (yyval
.function
)->identifier
= (yyvsp
[(2) - (3)].identifier
);
3563 /* Line 1464 of yacc.c */
3564 #line 746 "glsl_parser.ypp"
3567 (yyval
.parameter_declarator
) = new(ctx
) ast_parameter_declarator();
3568 (yyval
.parameter_declarator
)->set_location(yylloc
);
3569 (yyval
.parameter_declarator
)->type
= new(ctx
) ast_fully_specified_type();
3570 (yyval
.parameter_declarator
)->type
->set_location(yylloc
);
3571 (yyval
.parameter_declarator
)->type
->specifier
= (yyvsp
[(1) - (2)].type_specifier
);
3572 (yyval
.parameter_declarator
)->identifier
= (yyvsp
[(2) - (2)].identifier
);
3578 /* Line 1464 of yacc.c */
3579 #line 756 "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) - (5)].type_specifier
);
3587 (yyval
.parameter_declarator
)->identifier
= (yyvsp
[(2) - (5)].identifier
);
3588 (yyval
.parameter_declarator
)->is_array
= true;
3589 (yyval
.parameter_declarator
)->array_size
= (yyvsp
[(4) - (5)].expression
);
3595 /* Line 1464 of yacc.c */
3596 #line 771 "glsl_parser.ypp"
3598 (yyvsp
[(1) - (3)].type_qualifier
).flags
.i
|= (yyvsp
[(2) - (3)].type_qualifier
).flags
.i
;
3600 (yyval
.parameter_declarator
) = (yyvsp
[(3) - (3)].parameter_declarator
);
3601 (yyval
.parameter_declarator
)->type
->qualifier
= (yyvsp
[(1) - (3)].type_qualifier
);
3607 /* Line 1464 of yacc.c */
3608 #line 778 "glsl_parser.ypp"
3610 (yyval
.parameter_declarator
) = (yyvsp
[(2) - (2)].parameter_declarator
);
3611 (yyval
.parameter_declarator
)->type
->qualifier
= (yyvsp
[(1) - (2)].type_qualifier
);
3617 /* Line 1464 of yacc.c */
3618 #line 783 "glsl_parser.ypp"
3621 (yyvsp
[(1) - (3)].type_qualifier
).flags
.i
|= (yyvsp
[(2) - (3)].type_qualifier
).flags
.i
;
3623 (yyval
.parameter_declarator
) = new(ctx
) ast_parameter_declarator();
3624 (yyval
.parameter_declarator
)->set_location(yylloc
);
3625 (yyval
.parameter_declarator
)->type
= new(ctx
) ast_fully_specified_type();
3626 (yyval
.parameter_declarator
)->type
->qualifier
= (yyvsp
[(1) - (3)].type_qualifier
);
3627 (yyval
.parameter_declarator
)->type
->specifier
= (yyvsp
[(3) - (3)].type_specifier
);
3633 /* Line 1464 of yacc.c */
3634 #line 794 "glsl_parser.ypp"
3637 (yyval
.parameter_declarator
) = new(ctx
) ast_parameter_declarator();
3638 (yyval
.parameter_declarator
)->set_location(yylloc
);
3639 (yyval
.parameter_declarator
)->type
= new(ctx
) ast_fully_specified_type();
3640 (yyval
.parameter_declarator
)->type
->qualifier
= (yyvsp
[(1) - (2)].type_qualifier
);
3641 (yyval
.parameter_declarator
)->type
->specifier
= (yyvsp
[(2) - (2)].type_specifier
);
3647 /* Line 1464 of yacc.c */
3648 #line 806 "glsl_parser.ypp"
3650 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
3656 /* Line 1464 of yacc.c */
3657 #line 810 "glsl_parser.ypp"
3659 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
3660 (yyval
.type_qualifier
).flags
.q
.in
= 1;
3666 /* Line 1464 of yacc.c */
3667 #line 815 "glsl_parser.ypp"
3669 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
3670 (yyval
.type_qualifier
).flags
.q
.out
= 1;
3676 /* Line 1464 of yacc.c */
3677 #line 820 "glsl_parser.ypp"
3679 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
3680 (yyval
.type_qualifier
).flags
.q
.in
= 1;
3681 (yyval
.type_qualifier
).flags
.q
.out
= 1;
3687 /* Line 1464 of yacc.c */
3688 #line 834 "glsl_parser.ypp"
3691 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(3) - (3)].identifier
), false, NULL
, NULL
);
3692 decl
->set_location(yylloc
);
3694 (yyval
.declarator_list
) = (yyvsp
[(1) - (3)].declarator_list
);
3695 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3701 /* Line 1464 of yacc.c */
3702 #line 843 "glsl_parser.ypp"
3705 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(3) - (5)].identifier
), true, NULL
, NULL
);
3706 decl
->set_location(yylloc
);
3708 (yyval
.declarator_list
) = (yyvsp
[(1) - (5)].declarator_list
);
3709 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3715 /* Line 1464 of yacc.c */
3716 #line 852 "glsl_parser.ypp"
3719 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(3) - (6)].identifier
), true, (yyvsp
[(5) - (6)].expression
), NULL
);
3720 decl
->set_location(yylloc
);
3722 (yyval
.declarator_list
) = (yyvsp
[(1) - (6)].declarator_list
);
3723 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3729 /* Line 1464 of yacc.c */
3730 #line 861 "glsl_parser.ypp"
3733 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(3) - (7)].identifier
), true, NULL
, (yyvsp
[(7) - (7)].expression
));
3734 decl
->set_location(yylloc
);
3736 (yyval
.declarator_list
) = (yyvsp
[(1) - (7)].declarator_list
);
3737 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3743 /* Line 1464 of yacc.c */
3744 #line 870 "glsl_parser.ypp"
3747 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(3) - (8)].identifier
), true, (yyvsp
[(5) - (8)].expression
), (yyvsp
[(8) - (8)].expression
));
3748 decl
->set_location(yylloc
);
3750 (yyval
.declarator_list
) = (yyvsp
[(1) - (8)].declarator_list
);
3751 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3757 /* Line 1464 of yacc.c */
3758 #line 879 "glsl_parser.ypp"
3761 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(3) - (5)].identifier
), false, NULL
, (yyvsp
[(5) - (5)].expression
));
3762 decl
->set_location(yylloc
);
3764 (yyval
.declarator_list
) = (yyvsp
[(1) - (5)].declarator_list
);
3765 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3771 /* Line 1464 of yacc.c */
3772 #line 892 "glsl_parser.ypp"
3775 if ((yyvsp
[(1) - (1)].fully_specified_type
)->specifier
->type_specifier
!= ast_struct
) {
3776 _mesa_glsl_error(& (yylsp
[(1) - (1)]), state
, "empty declaration list\n");
3779 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list((yyvsp
[(1) - (1)].fully_specified_type
));
3780 (yyval
.declarator_list
)->set_location(yylloc
);
3787 /* Line 1464 of yacc.c */
3788 #line 903 "glsl_parser.ypp"
3791 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(2) - (2)].identifier
), false, NULL
, NULL
);
3793 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list((yyvsp
[(1) - (2)].fully_specified_type
));
3794 (yyval
.declarator_list
)->set_location(yylloc
);
3795 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3801 /* Line 1464 of yacc.c */
3802 #line 912 "glsl_parser.ypp"
3805 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(2) - (4)].identifier
), true, NULL
, NULL
);
3807 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list((yyvsp
[(1) - (4)].fully_specified_type
));
3808 (yyval
.declarator_list
)->set_location(yylloc
);
3809 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3815 /* Line 1464 of yacc.c */
3816 #line 921 "glsl_parser.ypp"
3819 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(2) - (5)].identifier
), true, (yyvsp
[(4) - (5)].expression
), NULL
);
3821 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list((yyvsp
[(1) - (5)].fully_specified_type
));
3822 (yyval
.declarator_list
)->set_location(yylloc
);
3823 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3829 /* Line 1464 of yacc.c */
3830 #line 930 "glsl_parser.ypp"
3833 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(2) - (6)].identifier
), true, NULL
, (yyvsp
[(6) - (6)].expression
));
3835 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list((yyvsp
[(1) - (6)].fully_specified_type
));
3836 (yyval
.declarator_list
)->set_location(yylloc
);
3837 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3843 /* Line 1464 of yacc.c */
3844 #line 939 "glsl_parser.ypp"
3847 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(2) - (7)].identifier
), true, (yyvsp
[(4) - (7)].expression
), (yyvsp
[(7) - (7)].expression
));
3849 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list((yyvsp
[(1) - (7)].fully_specified_type
));
3850 (yyval
.declarator_list
)->set_location(yylloc
);
3851 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3857 /* Line 1464 of yacc.c */
3858 #line 948 "glsl_parser.ypp"
3861 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(2) - (4)].identifier
), false, NULL
, (yyvsp
[(4) - (4)].expression
));
3863 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list((yyvsp
[(1) - (4)].fully_specified_type
));
3864 (yyval
.declarator_list
)->set_location(yylloc
);
3865 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3871 /* Line 1464 of yacc.c */
3872 #line 957 "glsl_parser.ypp"
3875 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(2) - (2)].identifier
), false, NULL
, NULL
);
3877 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list(NULL
);
3878 (yyval
.declarator_list
)->set_location(yylloc
);
3879 (yyval
.declarator_list
)->invariant
= true;
3881 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3887 /* Line 1464 of yacc.c */
3888 #line 971 "glsl_parser.ypp"
3891 (yyval
.fully_specified_type
) = new(ctx
) ast_fully_specified_type();
3892 (yyval
.fully_specified_type
)->set_location(yylloc
);
3893 (yyval
.fully_specified_type
)->specifier
= (yyvsp
[(1) - (1)].type_specifier
);
3899 /* Line 1464 of yacc.c */
3900 #line 978 "glsl_parser.ypp"
3903 (yyval
.fully_specified_type
) = new(ctx
) ast_fully_specified_type();
3904 (yyval
.fully_specified_type
)->set_location(yylloc
);
3905 (yyval
.fully_specified_type
)->qualifier
= (yyvsp
[(1) - (2)].type_qualifier
);
3906 (yyval
.fully_specified_type
)->specifier
= (yyvsp
[(2) - (2)].type_specifier
);
3912 /* Line 1464 of yacc.c */
3913 #line 989 "glsl_parser.ypp"
3915 (yyval
.type_qualifier
) = (yyvsp
[(3) - (4)].type_qualifier
);
3921 /* Line 1464 of yacc.c */
3922 #line 997 "glsl_parser.ypp"
3924 if (((yyvsp
[(1) - (3)].type_qualifier
).flags
.i
& (yyvsp
[(3) - (3)].type_qualifier
).flags
.i
) != 0) {
3925 _mesa_glsl_error(& (yylsp
[(3) - (3)]), state
,
3926 "duplicate layout qualifiers used\n");
3930 (yyval
.type_qualifier
).flags
.i
= (yyvsp
[(1) - (3)].type_qualifier
).flags
.i
| (yyvsp
[(3) - (3)].type_qualifier
).flags
.i
;
3932 if ((yyvsp
[(1) - (3)].type_qualifier
).flags
.q
.explicit_location
)
3933 (yyval
.type_qualifier
).location
= (yyvsp
[(1) - (3)].type_qualifier
).location
;
3935 if ((yyvsp
[(3) - (3)].type_qualifier
).flags
.q
.explicit_location
)
3936 (yyval
.type_qualifier
).location
= (yyvsp
[(3) - (3)].type_qualifier
).location
;
3942 /* Line 1464 of yacc.c */
3943 #line 1016 "glsl_parser.ypp"
3945 bool got_one
= false;
3947 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
3949 /* Layout qualifiers for ARB_fragment_coord_conventions. */
3950 if (!got_one
&& state
->ARB_fragment_coord_conventions_enable
) {
3951 if (strcmp((yyvsp
[(1) - (1)].identifier
), "origin_upper_left") == 0) {
3953 (yyval
.type_qualifier
).flags
.q
.origin_upper_left
= 1;
3954 } else if (strcmp((yyvsp
[(1) - (1)].identifier
), "pixel_center_integer") == 0) {
3956 (yyval
.type_qualifier
).flags
.q
.pixel_center_integer
= 1;
3959 if (got_one
&& state
->ARB_fragment_coord_conventions_warn
) {
3960 _mesa_glsl_warning(& (yylsp
[(1) - (1)]), state
,
3961 "GL_ARB_fragment_coord_conventions layout "
3962 "identifier `%s' used\n", (yyvsp
[(1) - (1)].identifier
));
3966 /* Layout qualifiers for AMD_conservative_depth. */
3967 if (!got_one
&& state
->AMD_conservative_depth_enable
) {
3968 if (strcmp((yyvsp
[(1) - (1)].identifier
), "depth_any") == 0) {
3970 (yyval
.type_qualifier
).flags
.q
.depth_any
= 1;
3971 } else if (strcmp((yyvsp
[(1) - (1)].identifier
), "depth_greater") == 0) {
3973 (yyval
.type_qualifier
).flags
.q
.depth_greater
= 1;
3974 } else if (strcmp((yyvsp
[(1) - (1)].identifier
), "depth_less") == 0) {
3976 (yyval
.type_qualifier
).flags
.q
.depth_less
= 1;
3977 } else if (strcmp((yyvsp
[(1) - (1)].identifier
), "depth_unchanged") == 0) {
3979 (yyval
.type_qualifier
).flags
.q
.depth_unchanged
= 1;
3982 if (got_one
&& state
->AMD_conservative_depth_warn
) {
3983 _mesa_glsl_warning(& (yylsp
[(1) - (1)]), state
,
3984 "GL_AMD_conservative_depth "
3985 "layout qualifier `%s' is used\n", (yyvsp
[(1) - (1)].identifier
));
3990 _mesa_glsl_error(& (yylsp
[(1) - (1)]), state
, "unrecognized layout identifier "
3991 "`%s'\n", (yyvsp
[(1) - (1)].identifier
));
3999 /* Line 1464 of yacc.c */
4000 #line 1068 "glsl_parser.ypp"
4002 bool got_one
= false;
4004 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
4006 if (state
->ARB_explicit_attrib_location_enable
) {
4007 /* FINISHME: Handle 'index' once GL_ARB_blend_func_exteneded and
4008 * FINISHME: GLSL 1.30 (or later) are supported.
4010 if (strcmp("location", (yyvsp
[(1) - (3)].identifier
)) == 0) {
4013 (yyval
.type_qualifier
).flags
.q
.explicit_location
= 1;
4015 if ((yyvsp
[(3) - (3)].n
) >= 0) {
4016 (yyval
.type_qualifier
).location
= (yyvsp
[(3) - (3)].n
);
4018 _mesa_glsl_error(& (yylsp
[(3) - (3)]), state
,
4019 "invalid location %d specified\n", (yyvsp
[(3) - (3)].n
));
4025 /* If the identifier didn't match any known layout identifiers,
4029 _mesa_glsl_error(& (yylsp
[(1) - (3)]), state
, "unrecognized layout identifier "
4030 "`%s'\n", (yyvsp
[(1) - (3)].identifier
));
4032 } else if (state
->ARB_explicit_attrib_location_warn
) {
4033 _mesa_glsl_warning(& (yylsp
[(1) - (3)]), state
,
4034 "GL_ARB_explicit_attrib_location layout "
4035 "identifier `%s' used\n", (yyvsp
[(1) - (3)].identifier
));
4042 /* Line 1464 of yacc.c */
4043 #line 1109 "glsl_parser.ypp"
4045 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
4046 (yyval
.type_qualifier
).flags
.q
.smooth
= 1;
4052 /* Line 1464 of yacc.c */
4053 #line 1114 "glsl_parser.ypp"
4055 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
4056 (yyval
.type_qualifier
).flags
.q
.flat
= 1;
4062 /* Line 1464 of yacc.c */
4063 #line 1119 "glsl_parser.ypp"
4065 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
4066 (yyval
.type_qualifier
).flags
.q
.noperspective
= 1;
4072 /* Line 1464 of yacc.c */
4073 #line 1127 "glsl_parser.ypp"
4075 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
4076 (yyval
.type_qualifier
).flags
.q
.constant
= 1;
4082 /* Line 1464 of yacc.c */
4083 #line 1137 "glsl_parser.ypp"
4085 (yyval
.type_qualifier
) = (yyvsp
[(1) - (2)].type_qualifier
);
4086 (yyval
.type_qualifier
).flags
.i
|= (yyvsp
[(2) - (2)].type_qualifier
).flags
.i
;
4092 /* Line 1464 of yacc.c */
4093 #line 1143 "glsl_parser.ypp"
4095 (yyval
.type_qualifier
) = (yyvsp
[(1) - (2)].type_qualifier
);
4096 (yyval
.type_qualifier
).flags
.i
|= (yyvsp
[(2) - (2)].type_qualifier
).flags
.i
;
4102 /* Line 1464 of yacc.c */
4103 #line 1148 "glsl_parser.ypp"
4105 (yyval
.type_qualifier
) = (yyvsp
[(2) - (2)].type_qualifier
);
4106 (yyval
.type_qualifier
).flags
.q
.invariant
= 1;
4112 /* Line 1464 of yacc.c */
4113 #line 1153 "glsl_parser.ypp"
4115 (yyval
.type_qualifier
) = (yyvsp
[(2) - (3)].type_qualifier
);
4116 (yyval
.type_qualifier
).flags
.i
|= (yyvsp
[(3) - (3)].type_qualifier
).flags
.i
;
4117 (yyval
.type_qualifier
).flags
.q
.invariant
= 1;
4123 /* Line 1464 of yacc.c */
4124 #line 1159 "glsl_parser.ypp"
4126 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
4127 (yyval
.type_qualifier
).flags
.q
.invariant
= 1;
4133 /* Line 1464 of yacc.c */
4134 #line 1167 "glsl_parser.ypp"
4136 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
4137 (yyval
.type_qualifier
).flags
.q
.constant
= 1;
4143 /* Line 1464 of yacc.c */
4144 #line 1172 "glsl_parser.ypp"
4146 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
4147 (yyval
.type_qualifier
).flags
.q
.attribute
= 1;
4153 /* Line 1464 of yacc.c */
4154 #line 1177 "glsl_parser.ypp"
4156 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
4157 (yyval
.type_qualifier
).flags
.q
.varying
= 1;
4163 /* Line 1464 of yacc.c */
4164 #line 1182 "glsl_parser.ypp"
4166 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
4167 (yyval
.type_qualifier
).flags
.q
.centroid
= 1;
4168 (yyval
.type_qualifier
).flags
.q
.varying
= 1;
4174 /* Line 1464 of yacc.c */
4175 #line 1188 "glsl_parser.ypp"
4177 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
4178 (yyval
.type_qualifier
).flags
.q
.in
= 1;
4184 /* Line 1464 of yacc.c */
4185 #line 1193 "glsl_parser.ypp"
4187 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
4188 (yyval
.type_qualifier
).flags
.q
.out
= 1;
4194 /* Line 1464 of yacc.c */
4195 #line 1198 "glsl_parser.ypp"
4197 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
4198 (yyval
.type_qualifier
).flags
.q
.centroid
= 1; (yyval
.type_qualifier
).flags
.q
.in
= 1;
4204 /* Line 1464 of yacc.c */
4205 #line 1203 "glsl_parser.ypp"
4207 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
4208 (yyval
.type_qualifier
).flags
.q
.centroid
= 1; (yyval
.type_qualifier
).flags
.q
.out
= 1;
4214 /* Line 1464 of yacc.c */
4215 #line 1208 "glsl_parser.ypp"
4217 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
4218 (yyval
.type_qualifier
).flags
.q
.uniform
= 1;
4224 /* Line 1464 of yacc.c */
4225 #line 1216 "glsl_parser.ypp"
4227 (yyval
.type_specifier
) = (yyvsp
[(1) - (1)].type_specifier
);
4233 /* Line 1464 of yacc.c */
4234 #line 1220 "glsl_parser.ypp"
4236 (yyval
.type_specifier
) = (yyvsp
[(2) - (2)].type_specifier
);
4237 (yyval
.type_specifier
)->precision
= (yyvsp
[(1) - (2)].n
);
4243 /* Line 1464 of yacc.c */
4244 #line 1229 "glsl_parser.ypp"
4246 (yyval
.type_specifier
) = (yyvsp
[(1) - (3)].type_specifier
);
4247 (yyval
.type_specifier
)->is_array
= true;
4248 (yyval
.type_specifier
)->array_size
= NULL
;
4254 /* Line 1464 of yacc.c */
4255 #line 1235 "glsl_parser.ypp"
4257 (yyval
.type_specifier
) = (yyvsp
[(1) - (4)].type_specifier
);
4258 (yyval
.type_specifier
)->is_array
= true;
4259 (yyval
.type_specifier
)->array_size
= (yyvsp
[(3) - (4)].expression
);
4265 /* Line 1464 of yacc.c */
4266 #line 1244 "glsl_parser.ypp"
4269 (yyval
.type_specifier
) = new(ctx
) ast_type_specifier((yyvsp
[(1) - (1)].n
));
4270 (yyval
.type_specifier
)->set_location(yylloc
);
4276 /* Line 1464 of yacc.c */
4277 #line 1250 "glsl_parser.ypp"
4280 (yyval
.type_specifier
) = new(ctx
) ast_type_specifier((yyvsp
[(1) - (1)].struct_specifier
));
4281 (yyval
.type_specifier
)->set_location(yylloc
);
4287 /* Line 1464 of yacc.c */
4288 #line 1256 "glsl_parser.ypp"
4291 (yyval
.type_specifier
) = new(ctx
) ast_type_specifier((yyvsp
[(1) - (1)].identifier
));
4292 (yyval
.type_specifier
)->set_location(yylloc
);
4298 /* Line 1464 of yacc.c */
4299 #line 1264 "glsl_parser.ypp"
4300 { (yyval
.n
) = ast_void
; ;}
4305 /* Line 1464 of yacc.c */
4306 #line 1265 "glsl_parser.ypp"
4307 { (yyval
.n
) = ast_float
; ;}
4312 /* Line 1464 of yacc.c */
4313 #line 1266 "glsl_parser.ypp"
4314 { (yyval
.n
) = ast_int
; ;}
4319 /* Line 1464 of yacc.c */
4320 #line 1267 "glsl_parser.ypp"
4321 { (yyval
.n
) = ast_uint
; ;}
4326 /* Line 1464 of yacc.c */
4327 #line 1268 "glsl_parser.ypp"
4328 { (yyval
.n
) = ast_bool
; ;}
4333 /* Line 1464 of yacc.c */
4334 #line 1269 "glsl_parser.ypp"
4335 { (yyval
.n
) = ast_vec2
; ;}
4340 /* Line 1464 of yacc.c */
4341 #line 1270 "glsl_parser.ypp"
4342 { (yyval
.n
) = ast_vec3
; ;}
4347 /* Line 1464 of yacc.c */
4348 #line 1271 "glsl_parser.ypp"
4349 { (yyval
.n
) = ast_vec4
; ;}
4354 /* Line 1464 of yacc.c */
4355 #line 1272 "glsl_parser.ypp"
4356 { (yyval
.n
) = ast_bvec2
; ;}
4361 /* Line 1464 of yacc.c */
4362 #line 1273 "glsl_parser.ypp"
4363 { (yyval
.n
) = ast_bvec3
; ;}
4368 /* Line 1464 of yacc.c */
4369 #line 1274 "glsl_parser.ypp"
4370 { (yyval
.n
) = ast_bvec4
; ;}
4375 /* Line 1464 of yacc.c */
4376 #line 1275 "glsl_parser.ypp"
4377 { (yyval
.n
) = ast_ivec2
; ;}
4382 /* Line 1464 of yacc.c */
4383 #line 1276 "glsl_parser.ypp"
4384 { (yyval
.n
) = ast_ivec3
; ;}
4389 /* Line 1464 of yacc.c */
4390 #line 1277 "glsl_parser.ypp"
4391 { (yyval
.n
) = ast_ivec4
; ;}
4396 /* Line 1464 of yacc.c */
4397 #line 1278 "glsl_parser.ypp"
4398 { (yyval
.n
) = ast_uvec2
; ;}
4403 /* Line 1464 of yacc.c */
4404 #line 1279 "glsl_parser.ypp"
4405 { (yyval
.n
) = ast_uvec3
; ;}
4410 /* Line 1464 of yacc.c */
4411 #line 1280 "glsl_parser.ypp"
4412 { (yyval
.n
) = ast_uvec4
; ;}
4417 /* Line 1464 of yacc.c */
4418 #line 1281 "glsl_parser.ypp"
4419 { (yyval
.n
) = ast_mat2
; ;}
4424 /* Line 1464 of yacc.c */
4425 #line 1282 "glsl_parser.ypp"
4426 { (yyval
.n
) = ast_mat2x3
; ;}
4431 /* Line 1464 of yacc.c */
4432 #line 1283 "glsl_parser.ypp"
4433 { (yyval
.n
) = ast_mat2x4
; ;}
4438 /* Line 1464 of yacc.c */
4439 #line 1284 "glsl_parser.ypp"
4440 { (yyval
.n
) = ast_mat3x2
; ;}
4445 /* Line 1464 of yacc.c */
4446 #line 1285 "glsl_parser.ypp"
4447 { (yyval
.n
) = ast_mat3
; ;}
4452 /* Line 1464 of yacc.c */
4453 #line 1286 "glsl_parser.ypp"
4454 { (yyval
.n
) = ast_mat3x4
; ;}
4459 /* Line 1464 of yacc.c */
4460 #line 1287 "glsl_parser.ypp"
4461 { (yyval
.n
) = ast_mat4x2
; ;}
4466 /* Line 1464 of yacc.c */
4467 #line 1288 "glsl_parser.ypp"
4468 { (yyval
.n
) = ast_mat4x3
; ;}
4473 /* Line 1464 of yacc.c */
4474 #line 1289 "glsl_parser.ypp"
4475 { (yyval
.n
) = ast_mat4
; ;}
4480 /* Line 1464 of yacc.c */
4481 #line 1290 "glsl_parser.ypp"
4482 { (yyval
.n
) = ast_sampler1d
; ;}
4487 /* Line 1464 of yacc.c */
4488 #line 1291 "glsl_parser.ypp"
4489 { (yyval
.n
) = ast_sampler2d
; ;}
4494 /* Line 1464 of yacc.c */
4495 #line 1292 "glsl_parser.ypp"
4496 { (yyval
.n
) = ast_sampler2drect
; ;}
4501 /* Line 1464 of yacc.c */
4502 #line 1293 "glsl_parser.ypp"
4503 { (yyval
.n
) = ast_sampler3d
; ;}
4508 /* Line 1464 of yacc.c */
4509 #line 1294 "glsl_parser.ypp"
4510 { (yyval
.n
) = ast_samplercube
; ;}
4515 /* Line 1464 of yacc.c */
4516 #line 1295 "glsl_parser.ypp"
4517 { (yyval
.n
) = ast_sampler1dshadow
; ;}
4522 /* Line 1464 of yacc.c */
4523 #line 1296 "glsl_parser.ypp"
4524 { (yyval
.n
) = ast_sampler2dshadow
; ;}
4529 /* Line 1464 of yacc.c */
4530 #line 1297 "glsl_parser.ypp"
4531 { (yyval
.n
) = ast_sampler2drectshadow
; ;}
4536 /* Line 1464 of yacc.c */
4537 #line 1298 "glsl_parser.ypp"
4538 { (yyval
.n
) = ast_samplercubeshadow
; ;}
4543 /* Line 1464 of yacc.c */
4544 #line 1299 "glsl_parser.ypp"
4545 { (yyval
.n
) = ast_sampler1darray
; ;}
4550 /* Line 1464 of yacc.c */
4551 #line 1300 "glsl_parser.ypp"
4552 { (yyval
.n
) = ast_sampler2darray
; ;}
4557 /* Line 1464 of yacc.c */
4558 #line 1301 "glsl_parser.ypp"
4559 { (yyval
.n
) = ast_sampler1darrayshadow
; ;}
4564 /* Line 1464 of yacc.c */
4565 #line 1302 "glsl_parser.ypp"
4566 { (yyval
.n
) = ast_sampler2darrayshadow
; ;}
4571 /* Line 1464 of yacc.c */
4572 #line 1303 "glsl_parser.ypp"
4573 { (yyval
.n
) = ast_isampler1d
; ;}
4578 /* Line 1464 of yacc.c */
4579 #line 1304 "glsl_parser.ypp"
4580 { (yyval
.n
) = ast_isampler2d
; ;}
4585 /* Line 1464 of yacc.c */
4586 #line 1305 "glsl_parser.ypp"
4587 { (yyval
.n
) = ast_isampler3d
; ;}
4592 /* Line 1464 of yacc.c */
4593 #line 1306 "glsl_parser.ypp"
4594 { (yyval
.n
) = ast_isamplercube
; ;}
4599 /* Line 1464 of yacc.c */
4600 #line 1307 "glsl_parser.ypp"
4601 { (yyval
.n
) = ast_isampler1darray
; ;}
4606 /* Line 1464 of yacc.c */
4607 #line 1308 "glsl_parser.ypp"
4608 { (yyval
.n
) = ast_isampler2darray
; ;}
4613 /* Line 1464 of yacc.c */
4614 #line 1309 "glsl_parser.ypp"
4615 { (yyval
.n
) = ast_usampler1d
; ;}
4620 /* Line 1464 of yacc.c */
4621 #line 1310 "glsl_parser.ypp"
4622 { (yyval
.n
) = ast_usampler2d
; ;}
4627 /* Line 1464 of yacc.c */
4628 #line 1311 "glsl_parser.ypp"
4629 { (yyval
.n
) = ast_usampler3d
; ;}
4634 /* Line 1464 of yacc.c */
4635 #line 1312 "glsl_parser.ypp"
4636 { (yyval
.n
) = ast_usamplercube
; ;}
4641 /* Line 1464 of yacc.c */
4642 #line 1313 "glsl_parser.ypp"
4643 { (yyval
.n
) = ast_usampler1darray
; ;}
4648 /* Line 1464 of yacc.c */
4649 #line 1314 "glsl_parser.ypp"
4650 { (yyval
.n
) = ast_usampler2darray
; ;}
4655 /* Line 1464 of yacc.c */
4656 #line 1318 "glsl_parser.ypp"
4658 if (!state
->es_shader
&& state
->language_version
< 130)
4659 _mesa_glsl_error(& (yylsp
[(1) - (1)]), state
,
4660 "precision qualifier forbidden "
4661 "in %s (1.30 or later "
4663 state
->version_string
);
4665 (yyval
.n
) = ast_precision_high
;
4671 /* Line 1464 of yacc.c */
4672 #line 1328 "glsl_parser.ypp"
4674 if (!state
->es_shader
&& state
->language_version
< 130)
4675 _mesa_glsl_error(& (yylsp
[(1) - (1)]), state
,
4676 "precision qualifier forbidden "
4677 "in %s (1.30 or later "
4679 state
->version_string
);
4681 (yyval
.n
) = ast_precision_medium
;
4687 /* Line 1464 of yacc.c */
4688 #line 1338 "glsl_parser.ypp"
4690 if (!state
->es_shader
&& state
->language_version
< 130)
4691 _mesa_glsl_error(& (yylsp
[(1) - (1)]), state
,
4692 "precision qualifier forbidden "
4693 "in %s (1.30 or later "
4695 state
->version_string
);
4697 (yyval
.n
) = ast_precision_low
;
4703 /* Line 1464 of yacc.c */
4704 #line 1352 "glsl_parser.ypp"
4707 (yyval
.struct_specifier
) = new(ctx
) ast_struct_specifier((yyvsp
[(2) - (5)].identifier
), (yyvsp
[(4) - (5)].node
));
4708 (yyval
.struct_specifier
)->set_location(yylloc
);
4714 /* Line 1464 of yacc.c */
4715 #line 1358 "glsl_parser.ypp"
4718 (yyval
.struct_specifier
) = new(ctx
) ast_struct_specifier(NULL
, (yyvsp
[(3) - (4)].node
));
4719 (yyval
.struct_specifier
)->set_location(yylloc
);
4725 /* Line 1464 of yacc.c */
4726 #line 1367 "glsl_parser.ypp"
4728 (yyval
.node
) = (ast_node
*) (yyvsp
[(1) - (1)].declarator_list
);
4729 (yyvsp
[(1) - (1)].declarator_list
)->link
.self_link();
4735 /* Line 1464 of yacc.c */
4736 #line 1372 "glsl_parser.ypp"
4738 (yyval
.node
) = (ast_node
*) (yyvsp
[(1) - (2)].node
);
4739 (yyval
.node
)->link
.insert_before(& (yyvsp
[(2) - (2)].declarator_list
)->link
);
4745 /* Line 1464 of yacc.c */
4746 #line 1380 "glsl_parser.ypp"
4749 ast_fully_specified_type
*type
= new(ctx
) ast_fully_specified_type();
4750 type
->set_location(yylloc
);
4752 type
->specifier
= (yyvsp
[(1) - (3)].type_specifier
);
4753 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list(type
);
4754 (yyval
.declarator_list
)->set_location(yylloc
);
4756 (yyval
.declarator_list
)->declarations
.push_degenerate_list_at_head(& (yyvsp
[(2) - (3)].declaration
)->link
);
4762 /* Line 1464 of yacc.c */
4763 #line 1395 "glsl_parser.ypp"
4765 (yyval
.declaration
) = (yyvsp
[(1) - (1)].declaration
);
4766 (yyvsp
[(1) - (1)].declaration
)->link
.self_link();
4772 /* Line 1464 of yacc.c */
4773 #line 1400 "glsl_parser.ypp"
4775 (yyval
.declaration
) = (yyvsp
[(1) - (3)].declaration
);
4776 (yyval
.declaration
)->link
.insert_before(& (yyvsp
[(3) - (3)].declaration
)->link
);
4782 /* Line 1464 of yacc.c */
4783 #line 1408 "glsl_parser.ypp"
4786 (yyval
.declaration
) = new(ctx
) ast_declaration((yyvsp
[(1) - (1)].identifier
), false, NULL
, NULL
);
4787 (yyval
.declaration
)->set_location(yylloc
);
4793 /* Line 1464 of yacc.c */
4794 #line 1414 "glsl_parser.ypp"
4797 (yyval
.declaration
) = new(ctx
) ast_declaration((yyvsp
[(1) - (4)].identifier
), true, (yyvsp
[(3) - (4)].expression
), NULL
);
4798 (yyval
.declaration
)->set_location(yylloc
);
4804 /* Line 1464 of yacc.c */
4805 #line 1432 "glsl_parser.ypp"
4806 { (yyval
.node
) = (ast_node
*) (yyvsp
[(1) - (1)].compound_statement
); ;}
4811 /* Line 1464 of yacc.c */
4812 #line 1440 "glsl_parser.ypp"
4813 { (yyval
.node
) = NULL
; ;}
4818 /* Line 1464 of yacc.c */
4819 #line 1441 "glsl_parser.ypp"
4820 { (yyval
.node
) = NULL
; ;}
4825 /* Line 1464 of yacc.c */
4826 #line 1448 "glsl_parser.ypp"
4829 (yyval
.compound_statement
) = new(ctx
) ast_compound_statement(true, NULL
);
4830 (yyval
.compound_statement
)->set_location(yylloc
);
4836 /* Line 1464 of yacc.c */
4837 #line 1454 "glsl_parser.ypp"
4840 (yyval
.compound_statement
) = new(ctx
) ast_compound_statement(true, (yyvsp
[(2) - (3)].node
));
4841 (yyval
.compound_statement
)->set_location(yylloc
);
4847 /* Line 1464 of yacc.c */
4848 #line 1462 "glsl_parser.ypp"
4849 { (yyval
.node
) = (ast_node
*) (yyvsp
[(1) - (1)].compound_statement
); ;}
4854 /* Line 1464 of yacc.c */
4855 #line 1468 "glsl_parser.ypp"
4858 (yyval
.compound_statement
) = new(ctx
) ast_compound_statement(false, NULL
);
4859 (yyval
.compound_statement
)->set_location(yylloc
);
4865 /* Line 1464 of yacc.c */
4866 #line 1474 "glsl_parser.ypp"
4869 (yyval
.compound_statement
) = new(ctx
) ast_compound_statement(false, (yyvsp
[(2) - (3)].node
));
4870 (yyval
.compound_statement
)->set_location(yylloc
);
4876 /* Line 1464 of yacc.c */
4877 #line 1483 "glsl_parser.ypp"
4879 if ((yyvsp
[(1) - (1)].node
) == NULL
) {
4880 _mesa_glsl_error(& (yylsp
[(1) - (1)]), state
, "<nil> statement\n");
4881 assert((yyvsp
[(1) - (1)].node
) != NULL
);
4884 (yyval
.node
) = (yyvsp
[(1) - (1)].node
);
4885 (yyval
.node
)->link
.self_link();
4891 /* Line 1464 of yacc.c */
4892 #line 1493 "glsl_parser.ypp"
4894 if ((yyvsp
[(2) - (2)].node
) == NULL
) {
4895 _mesa_glsl_error(& (yylsp
[(2) - (2)]), state
, "<nil> statement\n");
4896 assert((yyvsp
[(2) - (2)].node
) != NULL
);
4898 (yyval
.node
) = (yyvsp
[(1) - (2)].node
);
4899 (yyval
.node
)->link
.insert_before(& (yyvsp
[(2) - (2)].node
)->link
);
4905 /* Line 1464 of yacc.c */
4906 #line 1505 "glsl_parser.ypp"
4909 (yyval
.node
) = new(ctx
) ast_expression_statement(NULL
);
4910 (yyval
.node
)->set_location(yylloc
);
4916 /* Line 1464 of yacc.c */
4917 #line 1511 "glsl_parser.ypp"
4920 (yyval
.node
) = new(ctx
) ast_expression_statement((yyvsp
[(1) - (2)].expression
));
4921 (yyval
.node
)->set_location(yylloc
);
4927 /* Line 1464 of yacc.c */
4928 #line 1520 "glsl_parser.ypp"
4930 (yyval
.node
) = new(state
) ast_selection_statement((yyvsp
[(3) - (5)].expression
), (yyvsp
[(5) - (5)].selection_rest_statement
).then_statement
,
4931 (yyvsp
[(5) - (5)].selection_rest_statement
).else_statement
);
4932 (yyval
.node
)->set_location(yylloc
);
4938 /* Line 1464 of yacc.c */
4939 #line 1529 "glsl_parser.ypp"
4941 (yyval
.selection_rest_statement
).then_statement
= (yyvsp
[(1) - (3)].node
);
4942 (yyval
.selection_rest_statement
).else_statement
= (yyvsp
[(3) - (3)].node
);
4948 /* Line 1464 of yacc.c */
4949 #line 1534 "glsl_parser.ypp"
4951 (yyval
.selection_rest_statement
).then_statement
= (yyvsp
[(1) - (1)].node
);
4952 (yyval
.selection_rest_statement
).else_statement
= NULL
;
4958 /* Line 1464 of yacc.c */
4959 #line 1542 "glsl_parser.ypp"
4961 (yyval
.node
) = (ast_node
*) (yyvsp
[(1) - (1)].expression
);
4967 /* Line 1464 of yacc.c */
4968 #line 1546 "glsl_parser.ypp"
4971 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(2) - (4)].identifier
), false, NULL
, (yyvsp
[(4) - (4)].expression
));
4972 ast_declarator_list
*declarator
= new(ctx
) ast_declarator_list((yyvsp
[(1) - (4)].fully_specified_type
));
4973 decl
->set_location(yylloc
);
4974 declarator
->set_location(yylloc
);
4976 declarator
->declarations
.push_tail(&decl
->link
);
4977 (yyval
.node
) = declarator
;
4983 /* Line 1464 of yacc.c */
4984 #line 1569 "glsl_parser.ypp"
4987 (yyval
.node
) = new(ctx
) ast_iteration_statement(ast_iteration_statement::ast_while
,
4988 NULL
, (yyvsp
[(3) - (5)].node
), NULL
, (yyvsp
[(5) - (5)].node
));
4989 (yyval
.node
)->set_location(yylloc
);
4995 /* Line 1464 of yacc.c */
4996 #line 1576 "glsl_parser.ypp"
4999 (yyval
.node
) = new(ctx
) ast_iteration_statement(ast_iteration_statement::ast_do_while
,
5000 NULL
, (yyvsp
[(5) - (7)].expression
), NULL
, (yyvsp
[(2) - (7)].node
));
5001 (yyval
.node
)->set_location(yylloc
);
5007 /* Line 1464 of yacc.c */
5008 #line 1583 "glsl_parser.ypp"
5011 (yyval
.node
) = new(ctx
) ast_iteration_statement(ast_iteration_statement::ast_for
,
5012 (yyvsp
[(3) - (6)].node
), (yyvsp
[(4) - (6)].for_rest_statement
).cond
, (yyvsp
[(4) - (6)].for_rest_statement
).rest
, (yyvsp
[(6) - (6)].node
));
5013 (yyval
.node
)->set_location(yylloc
);
5019 /* Line 1464 of yacc.c */
5020 #line 1599 "glsl_parser.ypp"
5022 (yyval
.node
) = NULL
;
5028 /* Line 1464 of yacc.c */
5029 #line 1606 "glsl_parser.ypp"
5031 (yyval
.for_rest_statement
).cond
= (yyvsp
[(1) - (2)].node
);
5032 (yyval
.for_rest_statement
).rest
= NULL
;
5038 /* Line 1464 of yacc.c */
5039 #line 1611 "glsl_parser.ypp"
5041 (yyval
.for_rest_statement
).cond
= (yyvsp
[(1) - (3)].node
);
5042 (yyval
.for_rest_statement
).rest
= (yyvsp
[(3) - (3)].expression
);
5048 /* Line 1464 of yacc.c */
5049 #line 1620 "glsl_parser.ypp"
5052 (yyval
.node
) = new(ctx
) ast_jump_statement(ast_jump_statement::ast_continue
, NULL
);
5053 (yyval
.node
)->set_location(yylloc
);
5059 /* Line 1464 of yacc.c */
5060 #line 1626 "glsl_parser.ypp"
5063 (yyval
.node
) = new(ctx
) ast_jump_statement(ast_jump_statement::ast_break
, NULL
);
5064 (yyval
.node
)->set_location(yylloc
);
5070 /* Line 1464 of yacc.c */
5071 #line 1632 "glsl_parser.ypp"
5074 (yyval
.node
) = new(ctx
) ast_jump_statement(ast_jump_statement::ast_return
, NULL
);
5075 (yyval
.node
)->set_location(yylloc
);
5081 /* Line 1464 of yacc.c */
5082 #line 1638 "glsl_parser.ypp"
5085 (yyval
.node
) = new(ctx
) ast_jump_statement(ast_jump_statement::ast_return
, (yyvsp
[(2) - (3)].expression
));
5086 (yyval
.node
)->set_location(yylloc
);
5092 /* Line 1464 of yacc.c */
5093 #line 1644 "glsl_parser.ypp"
5096 (yyval
.node
) = new(ctx
) ast_jump_statement(ast_jump_statement::ast_discard
, NULL
);
5097 (yyval
.node
)->set_location(yylloc
);
5103 /* Line 1464 of yacc.c */
5104 #line 1652 "glsl_parser.ypp"
5105 { (yyval
.node
) = (yyvsp
[(1) - (1)].function_definition
); ;}
5110 /* Line 1464 of yacc.c */
5111 #line 1653 "glsl_parser.ypp"
5112 { (yyval
.node
) = (yyvsp
[(1) - (1)].node
); ;}
5117 /* Line 1464 of yacc.c */
5118 #line 1654 "glsl_parser.ypp"
5119 { (yyval
.node
) = NULL
; ;}
5124 /* Line 1464 of yacc.c */
5125 #line 1659 "glsl_parser.ypp"
5128 (yyval
.function_definition
) = new(ctx
) ast_function_definition();
5129 (yyval
.function_definition
)->set_location(yylloc
);
5130 (yyval
.function_definition
)->prototype
= (yyvsp
[(1) - (2)].function
);
5131 (yyval
.function_definition
)->body
= (yyvsp
[(2) - (2)].compound_statement
);
5137 /* Line 1464 of yacc.c */
5138 #line 5139 "glsl_parser.cpp"
5141 YY_SYMBOL_PRINT ("-> $$ =", yyr1
[yyn
], &yyval
, &yyloc
);
5145 YY_STACK_PRINT (yyss
, yyssp
);
5150 /* Now `shift' the result of the reduction. Determine what state
5151 that goes to, based on the state we popped back to and the rule
5152 number reduced by. */
5156 yystate
= yypgoto
[yyn
- YYNTOKENS
] + *yyssp
;
5157 if (0 <= yystate
&& yystate
<= YYLAST
&& yycheck
[yystate
] == *yyssp
)
5158 yystate
= yytable
[yystate
];
5160 yystate
= yydefgoto
[yyn
- YYNTOKENS
];
5165 /*------------------------------------.
5166 | yyerrlab -- here on detecting error |
5167 `------------------------------------*/
5169 /* If not already recovering from an error, report this error. */
5173 #if ! YYERROR_VERBOSE
5174 yyerror (&yylloc
, state
, YY_("syntax error"));
5177 YYSIZE_T yysize
= yysyntax_error (0, yystate
, yychar
);
5178 if (yymsg_alloc
< yysize
&& yymsg_alloc
< YYSTACK_ALLOC_MAXIMUM
)
5180 YYSIZE_T yyalloc
= 2 * yysize
;
5181 if (! (yysize
<= yyalloc
&& yyalloc
<= YYSTACK_ALLOC_MAXIMUM
))
5182 yyalloc
= YYSTACK_ALLOC_MAXIMUM
;
5183 if (yymsg
!= yymsgbuf
)
5184 YYSTACK_FREE (yymsg
);
5185 yymsg
= (char *) YYSTACK_ALLOC (yyalloc
);
5187 yymsg_alloc
= yyalloc
;
5191 yymsg_alloc
= sizeof yymsgbuf
;
5195 if (0 < yysize
&& yysize
<= yymsg_alloc
)
5197 (void) yysyntax_error (yymsg
, yystate
, yychar
);
5198 yyerror (&yylloc
, state
, yymsg
);
5202 yyerror (&yylloc
, state
, YY_("syntax error"));
5204 goto yyexhaustedlab
;
5210 yyerror_range
[1] = yylloc
;
5212 if (yyerrstatus
== 3)
5214 /* If just tried and failed to reuse lookahead token after an
5215 error, discard it. */
5217 if (yychar
<= YYEOF
)
5219 /* Return failure if at end of input. */
5220 if (yychar
== YYEOF
)
5225 yydestruct ("Error: discarding",
5226 yytoken
, &yylval
, &yylloc
, state
);
5231 /* Else will try to reuse lookahead token after shifting the error
5236 /*---------------------------------------------------.
5237 | yyerrorlab -- error raised explicitly by YYERROR. |
5238 `---------------------------------------------------*/
5241 /* Pacify compilers like GCC when the user code never invokes
5242 YYERROR and the label yyerrorlab therefore never appears in user
5244 if (/*CONSTCOND*/ 0)
5247 yyerror_range
[1] = yylsp
[1-yylen
];
5248 /* Do not reclaim the symbols of the rule which action triggered
5252 YY_STACK_PRINT (yyss
, yyssp
);
5257 /*-------------------------------------------------------------.
5258 | yyerrlab1 -- common code for both syntax error and YYERROR. |
5259 `-------------------------------------------------------------*/
5261 yyerrstatus
= 3; /* Each real token shifted decrements this. */
5265 yyn
= yypact
[yystate
];
5266 if (yyn
!= YYPACT_NINF
)
5269 if (0 <= yyn
&& yyn
<= YYLAST
&& yycheck
[yyn
] == YYTERROR
)
5277 /* Pop the current state because it cannot handle the error token. */
5281 yyerror_range
[1] = *yylsp
;
5282 yydestruct ("Error: popping",
5283 yystos
[yystate
], yyvsp
, yylsp
, state
);
5286 YY_STACK_PRINT (yyss
, yyssp
);
5291 yyerror_range
[2] = yylloc
;
5292 /* Using YYLLOC is tempting, but would change the location of
5293 the lookahead. YYLOC is available though. */
5294 YYLLOC_DEFAULT (yyloc
, yyerror_range
, 2);
5297 /* Shift the error token. */
5298 YY_SYMBOL_PRINT ("Shifting", yystos
[yyn
], yyvsp
, yylsp
);
5304 /*-------------------------------------.
5305 | yyacceptlab -- YYACCEPT comes here. |
5306 `-------------------------------------*/
5311 /*-----------------------------------.
5312 | yyabortlab -- YYABORT comes here. |
5313 `-----------------------------------*/
5318 #if !defined(yyoverflow) || YYERROR_VERBOSE
5319 /*-------------------------------------------------.
5320 | yyexhaustedlab -- memory exhaustion comes here. |
5321 `-------------------------------------------------*/
5323 yyerror (&yylloc
, state
, YY_("memory exhausted"));
5329 if (yychar
!= YYEMPTY
)
5330 yydestruct ("Cleanup: discarding lookahead",
5331 yytoken
, &yylval
, &yylloc
, state
);
5332 /* Do not reclaim the symbols of the rule which action triggered
5333 this YYABORT or YYACCEPT. */
5335 YY_STACK_PRINT (yyss
, yyssp
);
5336 while (yyssp
!= yyss
)
5338 yydestruct ("Cleanup: popping",
5339 yystos
[*yyssp
], yyvsp
, yylsp
, state
);
5344 YYSTACK_FREE (yyss
);
5347 if (yymsg
!= yymsgbuf
)
5348 YYSTACK_FREE (yymsg
);
5350 /* Make sure YYID is used. */
5351 return YYID (yyresult
);