2 /* A Bison parser, made by GNU Bison 2.4.1. */
4 /* Skeleton implementation for Bison's Yacc-like parsers in C
6 Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
7 Free Software Foundation, Inc.
9 This program is free software: you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as published by
11 the Free Software Foundation, either version 3 of the License, or
12 (at your option) any later version.
14 This program is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 GNU General Public License for more details.
19 You should have received a copy of the GNU General Public License
20 along with this program. If not, see <http://www.gnu.org/licenses/>. */
22 /* As a special exception, you may create a larger work that contains
23 part or all of the Bison parser skeleton and distribute that work
24 under terms of your choice, so long as that work isn't itself a
25 parser generator using the skeleton or a modified version thereof
26 as a parser skeleton. Alternatively, if you modify or redistribute
27 the parser skeleton itself, you may (at your option) remove this
28 special exception, which will cause the skeleton and the resulting
29 Bison output files to be licensed under the GNU General Public
30 License without this special exception.
32 This special exception was added by the Free Software Foundation in
33 version 2.2 of Bison. */
35 /* C LALR(1) parser skeleton written by Richard Stallman, by
36 simplifying the original so-called "semantic" parser. */
38 /* All symbols defined below should begin with yy or YY, to avoid
39 infringing on user name space. This should be done even for local
40 variables, as they might otherwise be expanded by user macros.
41 There are some unavoidable exceptions within include files to
42 define necessary library symbols; they are noted "INFRINGES ON
43 USER NAME SPACE" below. */
45 /* Identify Bison output. */
49 #define YYBISON_VERSION "2.4.1"
52 #define YYSKELETON_NAME "yacc.c"
63 /* Using locations. */
64 #define YYLSP_NEEDED 1
66 /* Substitute the variable and function names. */
67 #define yyparse _mesa_glsl_parse
68 #define yylex _mesa_glsl_lex
69 #define yyerror _mesa_glsl_error
70 #define yylval _mesa_glsl_lval
71 #define yychar _mesa_glsl_char
72 #define yydebug _mesa_glsl_debug
73 #define yynerrs _mesa_glsl_nerrs
74 #define yylloc _mesa_glsl_lloc
76 /* Copy the first part of user declarations. */
78 /* Line 189 of yacc.c */
79 #line 1 "glsl_parser.ypp"
82 * Copyright © 2008, 2009 Intel Corporation
84 * Permission is hereby granted, free of charge, to any person obtaining a
85 * copy of this software and associated documentation files (the "Software"),
86 * to deal in the Software without restriction, including without limitation
87 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
88 * and/or sell copies of the Software, and to permit persons to whom the
89 * Software is furnished to do so, subject to the following conditions:
91 * The above copyright notice and this permission notice (including the next
92 * paragraph) shall be included in all copies or substantial portions of the
95 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
96 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
97 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
98 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
99 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
100 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
101 * DEALINGS IN THE SOFTWARE.
109 #include "glsl_parser_extras.h"
110 #include "glsl_types.h"
112 #define YYLEX_PARAM state->scanner
116 /* Line 189 of yacc.c */
117 #line 118 "glsl_parser.cpp"
119 /* Enabling traces. */
124 /* Enabling verbose error messages. */
125 #ifdef YYERROR_VERBOSE
126 # undef YYERROR_VERBOSE
127 # define YYERROR_VERBOSE 1
129 # define YYERROR_VERBOSE 1
132 /* Enabling the token table. */
133 #ifndef YYTOKEN_TABLE
134 # define YYTOKEN_TABLE 0
141 /* Put the tokens into the symbol table, so that GDB and other debuggers
195 SAMPLER1DSHADOW
= 309,
196 SAMPLER2DSHADOW
= 310,
197 SAMPLERCUBESHADOW
= 311,
198 SAMPLER1DARRAY
= 312,
199 SAMPLER2DARRAY
= 313,
200 SAMPLER1DARRAYSHADOW
= 314,
201 SAMPLER2DARRAYSHADOW
= 315,
206 ISAMPLER1DARRAY
= 320,
207 ISAMPLER2DARRAY
= 321,
212 USAMPLER1DARRAY
= 326,
213 USAMPLER2DARRAY
= 327,
222 FIELD_SELECTION
= 336,
257 PRAGMA_DEBUG_ON
= 371,
258 PRAGMA_DEBUG_OFF
= 372,
259 PRAGMA_OPTIMIZE_ON
= 373,
260 PRAGMA_OPTIMIZE_OFF
= 374,
297 SAMPLER2DRECTSHADOW
= 411,
337 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
338 typedef union YYSTYPE
341 /* Line 214 of yacc.c */
342 #line 52 "glsl_parser.ypp"
348 struct ast_type_qualifier type_qualifier
;
351 ast_type_specifier
*type_specifier
;
352 ast_fully_specified_type
*fully_specified_type
;
353 ast_function
*function
;
354 ast_parameter_declarator
*parameter_declarator
;
355 ast_function_definition
*function_definition
;
356 ast_compound_statement
*compound_statement
;
357 ast_expression
*expression
;
358 ast_declarator_list
*declarator_list
;
359 ast_struct_specifier
*struct_specifier
;
360 ast_declaration
*declaration
;
364 ast_expression
*rest
;
365 } for_rest_statement
;
368 ast_node
*then_statement
;
369 ast_node
*else_statement
;
370 } selection_rest_statement
;
374 /* Line 214 of yacc.c */
375 #line 376 "glsl_parser.cpp"
377 # define YYSTYPE_IS_TRIVIAL 1
378 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
379 # define YYSTYPE_IS_DECLARED 1
382 #if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED
383 typedef struct YYLTYPE
390 # define yyltype YYLTYPE /* obsolescent; will be withdrawn */
391 # define YYLTYPE_IS_DECLARED 1
392 # define YYLTYPE_IS_TRIVIAL 1
396 /* Copy the second part of user declarations. */
399 /* Line 264 of yacc.c */
400 #line 401 "glsl_parser.cpp"
407 typedef YYTYPE_UINT8 yytype_uint8
;
409 typedef unsigned char yytype_uint8
;
413 typedef YYTYPE_INT8 yytype_int8
;
414 #elif (defined __STDC__ || defined __C99__FUNC__ \
415 || defined __cplusplus || defined _MSC_VER)
416 typedef signed char yytype_int8
;
418 typedef short int yytype_int8
;
422 typedef YYTYPE_UINT16 yytype_uint16
;
424 typedef unsigned short int yytype_uint16
;
428 typedef YYTYPE_INT16 yytype_int16
;
430 typedef short int yytype_int16
;
434 # ifdef __SIZE_TYPE__
435 # define YYSIZE_T __SIZE_TYPE__
436 # elif defined size_t
437 # define YYSIZE_T size_t
438 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
439 || defined __cplusplus || defined _MSC_VER)
440 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
441 # define YYSIZE_T size_t
443 # define YYSIZE_T unsigned int
447 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
452 # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
453 # define YY_(msgid) dgettext ("bison-runtime", msgid)
457 # define YY_(msgid) msgid
461 /* Suppress unused-variable warnings by "using" E. */
462 #if ! defined lint || defined __GNUC__
463 # define YYUSE(e) ((void) (e))
465 # define YYUSE(e) /* empty */
468 /* Identity function, used to suppress warnings about constant conditions. */
472 #if (defined __STDC__ || defined __C99__FUNC__ \
473 || defined __cplusplus || defined _MSC_VER)
486 #if ! defined yyoverflow || YYERROR_VERBOSE
488 /* The parser invokes alloca or malloc; define the necessary symbols. */
490 # ifdef YYSTACK_USE_ALLOCA
491 # if YYSTACK_USE_ALLOCA
493 # define YYSTACK_ALLOC __builtin_alloca
494 # elif defined __BUILTIN_VA_ARG_INCR
495 # include <alloca.h> /* INFRINGES ON USER NAME SPACE */
497 # define YYSTACK_ALLOC __alloca
498 # elif defined _MSC_VER
499 # include <malloc.h> /* INFRINGES ON USER NAME SPACE */
500 # define alloca _alloca
502 # define YYSTACK_ALLOC alloca
503 # if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
504 || defined __cplusplus || defined _MSC_VER)
505 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
514 # ifdef YYSTACK_ALLOC
515 /* Pacify GCC's `empty if-body' warning. */
516 # define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
517 # ifndef YYSTACK_ALLOC_MAXIMUM
518 /* The OS might guarantee only one guard page at the bottom of the stack,
519 and a page size can be as small as 4096 bytes. So we cannot safely
520 invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
521 to allow for a few compiler-allocated temporary stack slots. */
522 # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
525 # define YYSTACK_ALLOC YYMALLOC
526 # define YYSTACK_FREE YYFREE
527 # ifndef YYSTACK_ALLOC_MAXIMUM
528 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
530 # if (defined __cplusplus && ! defined _STDLIB_H \
531 && ! ((defined YYMALLOC || defined malloc) \
532 && (defined YYFREE || defined free)))
533 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
539 # define YYMALLOC malloc
540 # if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
541 || defined __cplusplus || defined _MSC_VER)
542 void *malloc (YYSIZE_T
); /* INFRINGES ON USER NAME SPACE */
547 # if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
548 || defined __cplusplus || defined _MSC_VER)
549 void free (void *); /* INFRINGES ON USER NAME SPACE */
553 #endif /* ! defined yyoverflow || YYERROR_VERBOSE */
556 #if (! defined yyoverflow \
557 && (! defined __cplusplus \
558 || (defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL \
559 && defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
561 /* A type that is properly aligned for any stack member. */
564 yytype_int16 yyss_alloc
;
569 /* The size of the maximum gap between one aligned stack and the next. */
570 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
572 /* The size of an array large to enough to hold all stacks, each with
574 # define YYSTACK_BYTES(N) \
575 ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \
576 + 2 * YYSTACK_GAP_MAXIMUM)
578 /* Copy COUNT objects from FROM to TO. The source and destination do
581 # if defined __GNUC__ && 1 < __GNUC__
582 # define YYCOPY(To, From, Count) \
583 __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
585 # define YYCOPY(To, From, Count) \
589 for (yyi = 0; yyi < (Count); yyi++) \
590 (To)[yyi] = (From)[yyi]; \
596 /* Relocate STACK from its old location to the new one. The
597 local variables YYSIZE and YYSTACKSIZE give the old and new number of
598 elements in the stack, and YYPTR gives the new location of the
599 stack. Advance YYPTR to a properly aligned location for the next
601 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \
604 YYSIZE_T yynewbytes; \
605 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
606 Stack = &yyptr->Stack_alloc; \
607 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
608 yyptr += yynewbytes / sizeof (*yyptr); \
614 /* YYFINAL -- State number of the termination state. */
616 /* YYLAST -- Last index in YYTABLE. */
619 /* YYNTOKENS -- Number of terminals. */
620 #define YYNTOKENS 215
621 /* YYNNTS -- Number of nonterminals. */
623 /* YYNRULES -- Number of rules. */
625 /* YYNRULES -- Number of states. */
626 #define YYNSTATES 413
628 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
630 #define YYMAXUTOK 445
632 #define YYTRANSLATE(YYX) \
633 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
635 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
636 static const yytype_uint8 yytranslate
[] =
638 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
639 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
640 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
641 2, 2, 2, 199, 2, 2, 2, 203, 206, 2,
642 191, 192, 201, 197, 196, 198, 195, 202, 2, 2,
643 2, 2, 2, 2, 2, 2, 2, 2, 210, 212,
644 204, 211, 205, 209, 2, 2, 2, 2, 2, 2,
645 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
646 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
647 2, 193, 2, 194, 207, 2, 2, 2, 2, 2,
648 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
649 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
650 2, 2, 2, 213, 208, 214, 200, 2, 2, 2,
651 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
652 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
653 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
654 2, 2, 2, 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, 1, 2, 3, 4,
664 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
665 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
666 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
667 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
668 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
669 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
670 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
671 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
672 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
673 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
674 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
675 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
676 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
677 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
678 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
679 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
680 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
681 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
682 185, 186, 187, 188, 189, 190
686 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
688 static const yytype_uint16 yyprhs
[] =
690 0, 0, 3, 4, 9, 10, 14, 17, 20, 23,
691 26, 27, 30, 36, 38, 41, 43, 45, 47, 49,
692 51, 53, 57, 59, 64, 66, 70, 73, 76, 78,
693 80, 82, 86, 89, 92, 95, 97, 100, 104, 107,
694 109, 111, 113, 115, 118, 121, 124, 126, 128, 130,
695 132, 134, 138, 142, 146, 148, 152, 156, 158, 162,
696 166, 168, 172, 176, 180, 184, 186, 190, 194, 196,
697 200, 202, 206, 208, 212, 214, 218, 220, 224, 226,
698 230, 232, 238, 240, 244, 246, 248, 250, 252, 254,
699 256, 258, 260, 262, 264, 266, 268, 272, 274, 277,
700 280, 285, 288, 290, 292, 295, 299, 303, 306, 312,
701 316, 319, 323, 326, 327, 329, 331, 333, 335, 337,
702 341, 347, 354, 362, 371, 377, 379, 382, 387, 393,
703 400, 408, 413, 416, 418, 421, 426, 428, 432, 434,
704 438, 440, 442, 444, 446, 448, 450, 453, 455, 458,
705 461, 465, 467, 469, 471, 473, 476, 478, 480, 483,
706 486, 488, 490, 493, 495, 499, 504, 506, 508, 510,
707 512, 514, 516, 518, 520, 522, 524, 526, 528, 530,
708 532, 534, 536, 538, 540, 542, 544, 546, 548, 550,
709 552, 554, 556, 558, 560, 562, 564, 566, 568, 570,
710 572, 574, 576, 578, 580, 582, 584, 586, 588, 590,
711 592, 594, 596, 598, 600, 602, 604, 606, 608, 610,
712 612, 614, 616, 618, 624, 629, 631, 634, 638, 640,
713 644, 646, 651, 653, 655, 657, 659, 661, 663, 665,
714 667, 669, 671, 673, 676, 680, 682, 684, 687, 691,
715 693, 696, 698, 701, 707, 711, 713, 715, 720, 726,
716 730, 733, 739, 747, 754, 756, 758, 760, 761, 764,
717 768, 771, 774, 777, 781, 784, 786, 788, 790
720 /* YYRHS -- A `-1'-separated list of the rules' RHS. */
721 static const yytype_int16 yyrhs
[] =
723 216, 0, -1, -1, 218, 220, 217, 222, -1, -1,
724 109, 78, 113, -1, 116, 113, -1, 117, 113, -1,
725 118, 113, -1, 119, 113, -1, -1, 220, 221, -1,
726 110, 76, 112, 76, 113, -1, 300, -1, 222, 300,
727 -1, 76, -1, 223, -1, 78, -1, 79, -1, 77,
728 -1, 80, -1, 191, 250, 192, -1, 224, -1, 225,
729 193, 226, 194, -1, 227, -1, 225, 195, 76, -1,
730 225, 84, -1, 225, 85, -1, 250, -1, 228, -1,
731 229, -1, 225, 195, 229, -1, 231, 192, -1, 230,
732 192, -1, 232, 74, -1, 232, -1, 232, 248, -1,
733 231, 196, 248, -1, 233, 191, -1, 271, -1, 76,
734 -1, 81, -1, 225, -1, 84, 234, -1, 85, 234,
735 -1, 235, 234, -1, 197, -1, 198, -1, 199, -1,
736 200, -1, 234, -1, 236, 201, 234, -1, 236, 202,
737 234, -1, 236, 203, 234, -1, 236, -1, 237, 197,
738 236, -1, 237, 198, 236, -1, 237, -1, 238, 82,
739 237, -1, 238, 83, 237, -1, 238, -1, 239, 204,
740 238, -1, 239, 205, 238, -1, 239, 86, 238, -1,
741 239, 87, 238, -1, 239, -1, 240, 88, 239, -1,
742 240, 89, 239, -1, 240, -1, 241, 206, 240, -1,
743 241, -1, 242, 207, 241, -1, 242, -1, 243, 208,
744 242, -1, 243, -1, 244, 90, 243, -1, 244, -1,
745 245, 92, 244, -1, 245, -1, 246, 91, 245, -1,
746 246, -1, 246, 209, 250, 210, 248, -1, 247, -1,
747 234, 249, 248, -1, 211, -1, 93, -1, 94, -1,
748 96, -1, 95, -1, 102, -1, 97, -1, 98, -1,
749 99, -1, 100, -1, 101, -1, 248, -1, 250, 196,
750 248, -1, 247, -1, 253, 212, -1, 261, 212, -1,
751 108, 275, 272, 212, -1, 254, 192, -1, 256, -1,
752 255, -1, 256, 258, -1, 255, 196, 258, -1, 263,
753 76, 191, -1, 271, 76, -1, 271, 76, 193, 251,
754 194, -1, 268, 259, 257, -1, 259, 257, -1, 268,
755 259, 260, -1, 259, 260, -1, -1, 33, -1, 34,
756 -1, 35, -1, 271, -1, 262, -1, 261, 196, 76,
757 -1, 261, 196, 76, 193, 194, -1, 261, 196, 76,
758 193, 251, 194, -1, 261, 196, 76, 193, 194, 211,
759 281, -1, 261, 196, 76, 193, 251, 194, 211, 281,
760 -1, 261, 196, 76, 211, 281, -1, 263, -1, 263,
761 76, -1, 263, 76, 193, 194, -1, 263, 76, 193,
762 251, 194, -1, 263, 76, 193, 194, 211, 281, -1,
763 263, 76, 193, 251, 194, 211, 281, -1, 263, 76,
764 211, 281, -1, 103, 76, -1, 271, -1, 269, 271,
765 -1, 120, 191, 265, 192, -1, 266, -1, 265, 196,
766 266, -1, 76, -1, 76, 211, 78, -1, 40, -1,
767 39, -1, 38, -1, 4, -1, 270, -1, 264, -1,
768 264, 270, -1, 267, -1, 267, 270, -1, 103, 270,
769 -1, 103, 267, 270, -1, 103, -1, 4, -1, 3,
770 -1, 37, -1, 32, 37, -1, 33, -1, 34, -1,
771 32, 33, -1, 32, 34, -1, 36, -1, 272, -1,
772 275, 272, -1, 273, -1, 273, 193, 194, -1, 273,
773 193, 251, 194, -1, 274, -1, 276, -1, 76, -1,
774 74, -1, 6, -1, 7, -1, 8, -1, 5, -1,
775 29, -1, 30, -1, 31, -1, 20, -1, 21, -1,
776 22, -1, 23, -1, 24, -1, 25, -1, 26, -1,
777 27, -1, 28, -1, 41, -1, 42, -1, 43, -1,
778 44, -1, 45, -1, 46, -1, 47, -1, 48, -1,
779 49, -1, 50, -1, 51, -1, 154, -1, 52, -1,
780 53, -1, 54, -1, 55, -1, 156, -1, 56, -1,
781 57, -1, 58, -1, 59, -1, 60, -1, 61, -1,
782 62, -1, 63, -1, 64, -1, 65, -1, 66, -1,
783 67, -1, 68, -1, 69, -1, 70, -1, 71, -1,
784 72, -1, 106, -1, 105, -1, 104, -1, 73, 76,
785 213, 277, 214, -1, 73, 213, 277, 214, -1, 278,
786 -1, 277, 278, -1, 271, 279, 212, -1, 280, -1,
787 279, 196, 280, -1, 76, -1, 76, 193, 251, 194,
788 -1, 248, -1, 252, -1, 285, -1, 284, -1, 282,
789 -1, 289, -1, 290, -1, 293, -1, 294, -1, 295,
790 -1, 299, -1, 213, 214, -1, 213, 288, 214, -1,
791 287, -1, 284, -1, 213, 214, -1, 213, 288, 214,
792 -1, 283, -1, 288, 283, -1, 212, -1, 250, 212,
793 -1, 14, 191, 250, 192, 291, -1, 283, 12, 283,
794 -1, 283, -1, 250, -1, 263, 76, 211, 281, -1,
795 17, 191, 250, 192, 285, -1, 18, 250, 210, -1,
796 19, 210, -1, 75, 191, 292, 192, 286, -1, 11,
797 283, 75, 191, 250, 192, 212, -1, 13, 191, 296,
798 298, 192, 286, -1, 289, -1, 282, -1, 292, -1,
799 -1, 297, 212, -1, 297, 212, 250, -1, 10, 212,
800 -1, 9, 212, -1, 16, 212, -1, 16, 250, 212,
801 -1, 15, 212, -1, 301, -1, 252, -1, 219, -1,
805 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
806 static const yytype_uint16 yyrline
[] =
808 0, 211, 211, 210, 217, 219, 239, 240, 241, 242,
809 245, 247, 251, 260, 268, 279, 283, 290, 297, 304,
810 311, 318, 325, 326, 332, 336, 343, 349, 358, 362,
811 366, 367, 376, 377, 381, 382, 386, 392, 404, 408,
812 414, 421, 432, 433, 439, 445, 455, 456, 457, 458,
813 462, 463, 469, 475, 484, 485, 491, 500, 501, 507,
814 516, 517, 523, 529, 535, 544, 545, 551, 560, 561,
815 570, 571, 580, 581, 590, 591, 600, 601, 610, 611,
816 620, 621, 630, 631, 640, 641, 642, 643, 644, 645,
817 646, 647, 648, 649, 650, 654, 658, 674, 678, 682,
818 686, 700, 704, 705, 709, 714, 722, 733, 743, 758,
819 765, 770, 781, 794, 797, 802, 807, 816, 820, 821,
820 830, 839, 848, 857, 866, 879, 890, 899, 908, 917,
821 926, 935, 944, 958, 965, 976, 983, 984, 1003, 1032,
822 1073, 1078, 1083, 1091, 1099, 1100, 1101, 1106, 1107, 1112,
823 1117, 1123, 1131, 1136, 1141, 1146, 1152, 1157, 1162, 1167,
824 1172, 1180, 1181, 1189, 1190, 1196, 1205, 1211, 1217, 1226,
825 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236,
826 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246,
827 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256,
828 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266,
829 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276,
830 1280, 1291, 1302, 1316, 1322, 1331, 1336, 1344, 1359, 1364,
831 1372, 1378, 1387, 1391, 1397, 1398, 1402, 1403, 1404, 1405,
832 1406, 1407, 1408, 1412, 1418, 1427, 1428, 1432, 1438, 1447,
833 1457, 1469, 1475, 1484, 1493, 1498, 1506, 1510, 1524, 1528,
834 1529, 1533, 1540, 1547, 1557, 1558, 1562, 1564, 1570, 1575,
835 1584, 1590, 1596, 1602, 1608, 1617, 1618, 1619, 1623
839 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
840 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
841 First, the terminals, then, starting at YYNTOKENS, nonterminals. */
842 static const char *const yytname
[] =
844 "$end", "error", "$undefined", "ATTRIBUTE", "CONST_TOK", "BOOL_TOK",
845 "FLOAT_TOK", "INT_TOK", "UINT_TOK", "BREAK", "CONTINUE", "DO", "ELSE",
846 "FOR", "IF", "DISCARD", "RETURN", "SWITCH", "CASE", "DEFAULT", "BVEC2",
847 "BVEC3", "BVEC4", "IVEC2", "IVEC3", "IVEC4", "UVEC2", "UVEC3", "UVEC4",
848 "VEC2", "VEC3", "VEC4", "CENTROID", "IN_TOK", "OUT_TOK", "INOUT_TOK",
849 "UNIFORM", "VARYING", "NOPERSPECTIVE", "FLAT", "SMOOTH", "MAT2X2",
850 "MAT2X3", "MAT2X4", "MAT3X2", "MAT3X3", "MAT3X4", "MAT4X2", "MAT4X3",
851 "MAT4X4", "SAMPLER1D", "SAMPLER2D", "SAMPLER3D", "SAMPLERCUBE",
852 "SAMPLER1DSHADOW", "SAMPLER2DSHADOW", "SAMPLERCUBESHADOW",
853 "SAMPLER1DARRAY", "SAMPLER2DARRAY", "SAMPLER1DARRAYSHADOW",
854 "SAMPLER2DARRAYSHADOW", "ISAMPLER1D", "ISAMPLER2D", "ISAMPLER3D",
855 "ISAMPLERCUBE", "ISAMPLER1DARRAY", "ISAMPLER2DARRAY", "USAMPLER1D",
856 "USAMPLER2D", "USAMPLER3D", "USAMPLERCUBE", "USAMPLER1DARRAY",
857 "USAMPLER2DARRAY", "STRUCT", "VOID_TOK", "WHILE", "IDENTIFIER",
858 "FLOATCONSTANT", "INTCONSTANT", "UINTCONSTANT", "BOOLCONSTANT",
859 "FIELD_SELECTION", "LEFT_OP", "RIGHT_OP", "INC_OP", "DEC_OP", "LE_OP",
860 "GE_OP", "EQ_OP", "NE_OP", "AND_OP", "OR_OP", "XOR_OP", "MUL_ASSIGN",
861 "DIV_ASSIGN", "ADD_ASSIGN", "MOD_ASSIGN", "LEFT_ASSIGN", "RIGHT_ASSIGN",
862 "AND_ASSIGN", "XOR_ASSIGN", "OR_ASSIGN", "SUB_ASSIGN", "INVARIANT",
863 "LOWP", "MEDIUMP", "HIGHP", "SUPERP", "PRECISION", "VERSION",
864 "EXTENSION", "LINE", "COLON", "EOL", "INTERFACE", "OUTPUT",
865 "PRAGMA_DEBUG_ON", "PRAGMA_DEBUG_OFF", "PRAGMA_OPTIMIZE_ON",
866 "PRAGMA_OPTIMIZE_OFF", "LAYOUT_TOK", "ASM", "CLASS", "UNION", "ENUM",
867 "TYPEDEF", "TEMPLATE", "THIS", "PACKED_TOK", "GOTO", "INLINE_TOK",
868 "NOINLINE", "VOLATILE", "PUBLIC_TOK", "STATIC", "EXTERN", "EXTERNAL",
869 "LONG_TOK", "SHORT_TOK", "DOUBLE_TOK", "HALF", "FIXED_TOK", "UNSIGNED",
870 "INPUT_TOK", "OUPTUT", "HVEC2", "HVEC3", "HVEC4", "DVEC2", "DVEC3",
871 "DVEC4", "FVEC2", "FVEC3", "FVEC4", "SAMPLER2DRECT", "SAMPLER3DRECT",
872 "SAMPLER2DRECTSHADOW", "SIZEOF", "CAST", "NAMESPACE", "USING",
873 "ERROR_TOK", "COMMON", "PARTITION", "ACTIVE", "SAMPLERBUFFER", "FILTER",
874 "IMAGE1D", "IMAGE2D", "IMAGE3D", "IMAGECUBE", "IMAGE1DARRAY",
875 "IMAGE2DARRAY", "IIMAGE1D", "IIMAGE2D", "IIMAGE3D", "IIMAGECUBE",
876 "IIMAGE1DARRAY", "IIMAGE2DARRAY", "UIMAGE1D", "UIMAGE2D", "UIMAGE3D",
877 "UIMAGECUBE", "UIMAGE1DARRAY", "UIMAGE2DARRAY", "IMAGE1DSHADOW",
878 "IMAGE2DSHADOW", "IMAGEBUFFER", "IIMAGEBUFFER", "UIMAGEBUFFER",
879 "ROW_MAJOR", "'('", "')'", "'['", "']'", "'.'", "','", "'+'", "'-'",
880 "'!'", "'~'", "'*'", "'/'", "'%'", "'<'", "'>'", "'&'", "'^'", "'|'",
881 "'?'", "':'", "'='", "';'", "'{'", "'}'", "$accept", "translation_unit",
882 "$@1", "version_statement", "pragma_statement",
883 "extension_statement_list", "extension_statement",
884 "external_declaration_list", "variable_identifier", "primary_expression",
885 "postfix_expression", "integer_expression", "function_call",
886 "function_call_or_method", "function_call_generic",
887 "function_call_header_no_parameters",
888 "function_call_header_with_parameters", "function_call_header",
889 "function_identifier", "unary_expression", "unary_operator",
890 "multiplicative_expression", "additive_expression", "shift_expression",
891 "relational_expression", "equality_expression", "and_expression",
892 "exclusive_or_expression", "inclusive_or_expression",
893 "logical_and_expression", "logical_xor_expression",
894 "logical_or_expression", "conditional_expression",
895 "assignment_expression", "assignment_operator", "expression",
896 "constant_expression", "declaration", "function_prototype",
897 "function_declarator", "function_header_with_parameters",
898 "function_header", "parameter_declarator", "parameter_declaration",
899 "parameter_qualifier", "parameter_type_specifier",
900 "init_declarator_list", "single_declaration", "fully_specified_type",
901 "layout_qualifier", "layout_qualifier_id_list", "layout_qualifier_id",
902 "interpolation_qualifier", "parameter_type_qualifier", "type_qualifier",
903 "storage_qualifier", "type_specifier", "type_specifier_no_prec",
904 "type_specifier_nonarray", "basic_type_specifier_nonarray",
905 "precision_qualifier", "struct_specifier", "struct_declaration_list",
906 "struct_declaration", "struct_declarator_list", "struct_declarator",
907 "initializer", "declaration_statement", "statement", "simple_statement",
908 "compound_statement", "statement_no_new_scope",
909 "compound_statement_no_new_scope", "statement_list",
910 "expression_statement", "selection_statement",
911 "selection_rest_statement", "condition", "switch_statement",
912 "case_label", "iteration_statement", "for_init_statement",
913 "conditionopt", "for_rest_statement", "jump_statement",
914 "external_declaration", "function_definition", 0
919 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
921 static const yytype_uint16 yytoknum
[] =
923 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
924 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
925 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
926 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
927 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
928 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
929 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
930 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
931 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
932 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
933 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
934 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
935 375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
936 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
937 395, 396, 397, 398, 399, 400, 401, 402, 403, 404,
938 405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
939 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
940 425, 426, 427, 428, 429, 430, 431, 432, 433, 434,
941 435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
942 445, 40, 41, 91, 93, 46, 44, 43, 45, 33,
943 126, 42, 47, 37, 60, 62, 38, 94, 124, 63,
948 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
949 static const yytype_uint16 yyr1
[] =
951 0, 215, 217, 216, 218, 218, 219, 219, 219, 219,
952 220, 220, 221, 222, 222, 223, 224, 224, 224, 224,
953 224, 224, 225, 225, 225, 225, 225, 225, 226, 227,
954 228, 228, 229, 229, 230, 230, 231, 231, 232, 233,
955 233, 233, 234, 234, 234, 234, 235, 235, 235, 235,
956 236, 236, 236, 236, 237, 237, 237, 238, 238, 238,
957 239, 239, 239, 239, 239, 240, 240, 240, 241, 241,
958 242, 242, 243, 243, 244, 244, 245, 245, 246, 246,
959 247, 247, 248, 248, 249, 249, 249, 249, 249, 249,
960 249, 249, 249, 249, 249, 250, 250, 251, 252, 252,
961 252, 253, 254, 254, 255, 255, 256, 257, 257, 258,
962 258, 258, 258, 259, 259, 259, 259, 260, 261, 261,
963 261, 261, 261, 261, 261, 262, 262, 262, 262, 262,
964 262, 262, 262, 263, 263, 264, 265, 265, 266, 266,
965 267, 267, 267, 268, 269, 269, 269, 269, 269, 269,
966 269, 269, 270, 270, 270, 270, 270, 270, 270, 270,
967 270, 271, 271, 272, 272, 272, 273, 273, 273, 274,
968 274, 274, 274, 274, 274, 274, 274, 274, 274, 274,
969 274, 274, 274, 274, 274, 274, 274, 274, 274, 274,
970 274, 274, 274, 274, 274, 274, 274, 274, 274, 274,
971 274, 274, 274, 274, 274, 274, 274, 274, 274, 274,
972 274, 274, 274, 274, 274, 274, 274, 274, 274, 274,
973 275, 275, 275, 276, 276, 277, 277, 278, 279, 279,
974 280, 280, 281, 282, 283, 283, 284, 284, 284, 284,
975 284, 284, 284, 285, 285, 286, 286, 287, 287, 288,
976 288, 289, 289, 290, 291, 291, 292, 292, 293, 294,
977 294, 295, 295, 295, 296, 296, 297, 297, 298, 298,
978 299, 299, 299, 299, 299, 300, 300, 300, 301
981 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
982 static const yytype_uint8 yyr2
[] =
984 0, 2, 0, 4, 0, 3, 2, 2, 2, 2,
985 0, 2, 5, 1, 2, 1, 1, 1, 1, 1,
986 1, 3, 1, 4, 1, 3, 2, 2, 1, 1,
987 1, 3, 2, 2, 2, 1, 2, 3, 2, 1,
988 1, 1, 1, 2, 2, 2, 1, 1, 1, 1,
989 1, 3, 3, 3, 1, 3, 3, 1, 3, 3,
990 1, 3, 3, 3, 3, 1, 3, 3, 1, 3,
991 1, 3, 1, 3, 1, 3, 1, 3, 1, 3,
992 1, 5, 1, 3, 1, 1, 1, 1, 1, 1,
993 1, 1, 1, 1, 1, 1, 3, 1, 2, 2,
994 4, 2, 1, 1, 2, 3, 3, 2, 5, 3,
995 2, 3, 2, 0, 1, 1, 1, 1, 1, 3,
996 5, 6, 7, 8, 5, 1, 2, 4, 5, 6,
997 7, 4, 2, 1, 2, 4, 1, 3, 1, 3,
998 1, 1, 1, 1, 1, 1, 2, 1, 2, 2,
999 3, 1, 1, 1, 1, 2, 1, 1, 2, 2,
1000 1, 1, 2, 1, 3, 4, 1, 1, 1, 1,
1001 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1002 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1003 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1004 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1005 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1006 1, 1, 1, 5, 4, 1, 2, 3, 1, 3,
1007 1, 4, 1, 1, 1, 1, 1, 1, 1, 1,
1008 1, 1, 1, 2, 3, 1, 1, 2, 3, 1,
1009 2, 1, 2, 5, 3, 1, 1, 4, 5, 3,
1010 2, 5, 7, 6, 1, 1, 1, 0, 2, 3,
1011 2, 2, 2, 3, 2, 1, 1, 1, 2
1014 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
1015 STATE-NUM when YYTABLE doesn't specify something else to do. Zero
1016 means the default is an error. */
1017 static const yytype_uint16 yydefact
[] =
1019 4, 0, 0, 10, 0, 1, 2, 5, 0, 0,
1020 11, 0, 153, 152, 173, 170, 171, 172, 177, 178,
1021 179, 180, 181, 182, 183, 184, 185, 174, 175, 176,
1022 0, 156, 157, 160, 154, 142, 141, 140, 186, 187,
1023 188, 189, 190, 191, 192, 193, 194, 195, 196, 198,
1024 199, 200, 201, 203, 204, 205, 206, 207, 208, 209,
1025 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
1026 0, 169, 168, 151, 222, 221, 220, 0, 0, 0,
1027 0, 0, 0, 197, 202, 277, 3, 276, 0, 0,
1028 103, 113, 0, 118, 125, 145, 147, 0, 144, 133,
1029 161, 163, 166, 0, 167, 13, 275, 0, 158, 159,
1030 155, 0, 0, 132, 0, 149, 0, 6, 7, 8,
1031 9, 0, 14, 98, 0, 278, 101, 113, 143, 114,
1032 115, 116, 104, 0, 113, 0, 99, 126, 146, 148,
1033 134, 0, 162, 0, 0, 0, 0, 225, 150, 0,
1034 138, 0, 136, 0, 0, 0, 0, 0, 0, 0,
1035 0, 0, 0, 0, 15, 19, 17, 18, 20, 41,
1036 0, 0, 0, 46, 47, 48, 49, 251, 0, 247,
1037 16, 22, 42, 24, 29, 30, 0, 0, 35, 0,
1038 50, 0, 54, 57, 60, 65, 68, 70, 72, 74,
1039 76, 78, 80, 82, 95, 0, 233, 0, 133, 236,
1040 249, 235, 234, 0, 237, 238, 239, 240, 241, 242,
1041 105, 110, 112, 117, 0, 119, 106, 0, 0, 164,
1042 50, 97, 0, 39, 12, 0, 230, 0, 228, 224,
1043 226, 100, 0, 135, 0, 271, 270, 0, 0, 0,
1044 274, 272, 0, 0, 0, 260, 0, 43, 44, 0,
1045 243, 0, 26, 27, 0, 0, 33, 32, 0, 169,
1046 36, 38, 85, 86, 88, 87, 90, 91, 92, 93,
1047 94, 89, 84, 0, 45, 0, 0, 0, 0, 0,
1048 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1049 0, 0, 0, 0, 0, 0, 252, 248, 250, 107,
1050 109, 111, 0, 0, 127, 0, 232, 131, 165, 223,
1051 0, 0, 227, 139, 137, 0, 265, 264, 267, 0,
1052 273, 0, 259, 151, 256, 0, 0, 21, 244, 0,
1053 28, 25, 31, 37, 83, 51, 52, 53, 55, 56,
1054 58, 59, 63, 64, 61, 62, 66, 67, 69, 71,
1055 73, 75, 77, 79, 0, 96, 0, 120, 0, 124,
1056 0, 128, 0, 229, 0, 266, 0, 0, 0, 0,
1057 0, 0, 23, 0, 0, 0, 121, 129, 0, 231,
1058 0, 268, 0, 255, 253, 258, 0, 246, 261, 245,
1059 81, 108, 122, 0, 130, 0, 269, 263, 0, 257,
1063 /* YYDEFGOTO[NTERM-NUM]. */
1064 static const yytype_int16 yydefgoto
[] =
1066 -1, 2, 9, 3, 85, 6, 10, 86, 180, 181,
1067 182, 339, 183, 184, 185, 186, 187, 188, 189, 190,
1068 191, 192, 193, 194, 195, 196, 197, 198, 199, 200,
1069 201, 202, 203, 204, 283, 205, 232, 206, 207, 89,
1070 90, 91, 221, 132, 133, 222, 92, 93, 94, 95,
1071 151, 152, 96, 134, 97, 98, 233, 100, 101, 102,
1072 103, 104, 146, 147, 237, 238, 317, 209, 210, 211,
1073 212, 398, 399, 213, 214, 215, 394, 336, 216, 217,
1074 218, 328, 376, 377, 219, 105, 106
1077 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1079 #define YYPACT_NINF -360
1080 static const yytype_int16 yypact
[] =
1082 -54, -53, 37, -360, -26, -360, -5, -360, 73, 3276,
1083 -360, 63, -360, -360, -360, -360, -360, -360, -360, -360,
1084 -360, -360, -360, -360, -360, -360, -360, -360, -360, -360,
1085 105, -360, -360, -360, -360, -360, -360, -360, -360, -360,
1086 -360, -360, -360, -360, -360, -360, -360, -360, -360, -360,
1087 -360, -360, -360, -360, -360, -360, -360, -360, -360, -360,
1088 -360, -360, -360, -360, -360, -360, -360, -360, -360, -360,
1089 -69, -360, -360, 42, -360, -360, -360, -74, 65, 79,
1090 83, 85, 16, -360, -360, -360, 3276, -360, -99, 9,
1091 13, 5, -152, -360, 134, 17, 17, 3464, -360, -360,
1092 -360, 18, -360, 3536, -360, -360, -360, 136, -360, -360,
1093 -360, 0, 3464, -360, 17, -360, 3536, -360, -360, -360,
1094 -360, 138, -360, -360, 387, -360, -360, 24, -360, -360,
1095 -360, -360, -360, 3464, 149, 141, -360, -150, -360, -360,
1096 -360, 2371, -360, 106, 3464, 144, 1760, -360, -360, 11,
1097 14, -144, -360, 12, 20, 1235, 30, 31, 22, 1992,
1098 38, 2914, 26, 46, -59, -360, -360, -360, -360, -360,
1099 2914, 2914, 2914, -360, -360, -360, -360, -360, 599, -360,
1100 -360, -360, -70, -360, -360, -360, 36, -56, 3095, 47,
1101 -30, 2914, -8, -113, 39, -76, 45, 34, 23, 35,
1102 154, 153, -79, -360, -360, -123, -360, 41, 55, -360,
1103 -360, -360, -360, 811, -360, -360, -360, -360, -360, -360,
1104 -360, -360, -360, 172, 3464, -164, -360, 2552, 2914, -360,
1105 -360, -360, 56, -360, -360, 1876, 58, -110, -360, -360,
1106 -360, -360, 171, -360, 138, -360, -360, 179, 1644, 2914,
1107 -360, -360, -101, 2914, -90, -360, 2190, -360, -360, -51,
1108 -360, 1023, -360, -360, 2914, 3392, -360, -360, 2914, 64,
1109 -360, -360, -360, -360, -360, -360, -360, -360, -360, -360,
1110 -360, -360, -360, 2914, -360, 2914, 2914, 2914, 2914, 2914,
1111 2914, 2914, 2914, 2914, 2914, 2914, 2914, 2914, 2914, 2914,
1112 2914, 2914, 2914, 2914, 2914, 2914, -360, -360, -360, 62,
1113 -360, -360, 2733, 2914, 48, 66, -360, -360, -360, -360,
1114 2914, 144, -360, -360, -360, 67, -360, -360, 2190, -49,
1115 -360, -22, -360, 238, 68, 187, 74, -360, -360, 71,
1116 68, 76, -360, -360, -360, -360, -360, -360, -8, -8,
1117 -113, -113, 39, 39, 39, 39, -76, -76, 45, 34,
1118 23, 35, 154, 153, -84, -360, 2914, 57, 75, -360,
1119 2914, 69, 87, -360, 2914, -360, 70, 91, 1235, 72,
1120 78, 1446, -360, 2914, 90, 2914, 81, -360, 2914, -360,
1121 -16, 2914, 1446, 267, -360, -360, 2914, -360, -360, -360,
1122 -360, -360, -360, 2914, -360, 82, 68, -360, 1235, -360,
1126 /* YYPGOTO[NTERM-NUM]. */
1127 static const yytype_int16 yypgoto
[] =
1129 -360, -360, -360, -360, -360, -360, -360, -360, -360, -360,
1130 -360, -360, -360, -360, 25, -360, -360, -360, -360, -135,
1131 -360, -89, -88, -104, -91, -11, -6, -4, -3, -7,
1132 -2, -360, -133, -97, -360, -156, -193, 4, 10, -360,
1133 -360, -360, 80, 170, 166, 84, -360, -360, -229, -360,
1134 -360, 59, -71, -360, -360, -72, -9, 1, -360, -360,
1135 225, -360, 161, -128, -360, -14, -287, 61, -151, -359,
1136 -68, -82, 224, 135, 77, -360, -360, -13, -360, -360,
1137 -360, -360, -360, -360, -360, 228, -360
1140 /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
1141 positive, shift that token. If negative, reduce the rule which
1142 number is the opposite. If zero, do what YYDEFACT says.
1143 If YYTABLE_NINF, syntax error. */
1144 #define YYTABLE_NINF -169
1145 static const yytype_int16 yytable
[] =
1147 99, 115, 114, 252, 247, 254, 230, 111, 231, 128,
1148 292, 293, 303, 87, 262, 263, 259, -168, 240, 88,
1149 12, 13, 397, 138, 139, 4, 369, 335, 128, 312,
1150 74, 75, 76, 397, 315, 257, 258, 5, 129, 130,
1151 131, 226, 148, 227, 135, 12, 13, 313, 243, 30,
1152 31, 32, 244, 33, 34, 1, 284, 129, 130, 131,
1153 136, 228, 308, 272, 273, 274, 275, 276, 277, 278,
1154 279, 280, 281, 305, 30, 31, 32, 99, 33, 34,
1155 35, 36, 37, 387, 288, 289, 321, 7, 140, 306,
1156 87, 270, 230, 329, 231, 305, 88, 331, 402, 335,
1157 334, 404, 322, 145, 142, 8, 305, 240, 340, 409,
1158 308, 330, 305, 123, 124, 208, 410, 149, 113, 368,
1159 332, 290, 291, 264, 223, 265, 383, 372, 294, 295,
1160 304, 316, -40, 296, 297, 145, 267, 145, 108, 109,
1161 268, 337, 110, 378, 112, 305, 208, 305, 364, 11,
1162 345, 346, 347, 230, 230, 230, 230, 230, 230, 230,
1163 230, 230, 230, 230, 230, 230, 230, 230, 230, 208,
1164 379, 343, 334, 384, 305, 107, 405, 230, 117, 231,
1165 305, 282, 129, 130, 131, 230, 344, 231, 352, 353,
1166 354, 355, 118, 285, 286, 287, 119, -102, 120, 348,
1167 349, 126, 350, 351, 208, 356, 357, 121, 365, 127,
1168 137, 141, 143, 144, 150, 223, 316, 225, 390, 234,
1169 236, 248, 249, 241, 245, 242, 145, 393, 266, 253,
1170 299, 230, 246, 231, 250, 406, 255, 256, 271, 208,
1171 298, 12, 13, 300, 301, 302, -39, 208, 309, 323,
1172 318, 320, 208, 123, 325, 366, -34, 412, 374, 370,
1173 371, 115, 114, 380, 305, 382, 381, -40, 385, 386,
1174 30, 31, 32, 316, 33, 34, 35, 36, 37, 408,
1175 388, 389, 391, 392, 401, 178, 400, 358, 316, 396,
1176 342, 316, 403, 359, 411, 362, 360, 220, 361, 316,
1177 224, 363, 116, 324, 310, 235, 316, 373, 311, 326,
1178 407, 395, 125, 261, 122, 375, 0, 0, 0, 208,
1179 0, 0, 0, 0, 0, 327, 0, 0, 0, 0,
1180 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1181 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1182 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1183 0, 0, 0, 0, 0, 0, 0, 0, 0, 208,
1184 0, 0, 208, 0, 0, 0, 0, 0, 0, 0,
1185 0, 0, 0, 208, 0, 0, 0, 0, 0, 0,
1186 12, 13, 14, 15, 16, 17, 153, 154, 155, 208,
1187 156, 157, 158, 159, 160, 161, 162, 18, 19, 20,
1188 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
1189 31, 32, 0, 33, 34, 35, 36, 37, 38, 39,
1190 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1191 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1192 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1193 70, 71, 163, 164, 165, 166, 167, 168, 169, 0,
1194 0, 170, 171, 0, 0, 0, 0, 0, 0, 0,
1195 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1196 73, 74, 75, 76, 0, 77, 0, 0, 0, 0,
1197 0, 0, 0, 0, 0, 0, 0, 82, 0, 0,
1198 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1199 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1200 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1201 0, 83, 0, 84, 0, 0, 0, 0, 0, 0,
1202 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1203 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1204 0, 0, 0, 0, 0, 0, 0, 0, 172, 0,
1205 0, 0, 0, 0, 173, 174, 175, 176, 0, 0,
1206 0, 0, 0, 0, 0, 0, 0, 0, 0, 177,
1207 178, 179, 12, 13, 14, 15, 16, 17, 153, 154,
1208 155, 0, 156, 157, 158, 159, 160, 161, 162, 18,
1209 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1210 29, 30, 31, 32, 0, 33, 34, 35, 36, 37,
1211 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1212 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1213 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1214 68, 69, 70, 71, 163, 164, 165, 166, 167, 168,
1215 169, 0, 0, 170, 171, 0, 0, 0, 0, 0,
1216 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1217 0, 0, 73, 74, 75, 76, 0, 77, 0, 0,
1218 0, 0, 0, 0, 0, 0, 0, 0, 0, 82,
1219 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1220 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1221 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1222 0, 0, 0, 83, 0, 84, 0, 0, 0, 0,
1223 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1224 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1225 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1226 172, 0, 0, 0, 0, 0, 173, 174, 175, 176,
1227 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1228 0, 177, 178, 260, 12, 13, 14, 15, 16, 17,
1229 153, 154, 155, 0, 156, 157, 158, 159, 160, 161,
1230 162, 18, 19, 20, 21, 22, 23, 24, 25, 26,
1231 27, 28, 29, 30, 31, 32, 0, 33, 34, 35,
1232 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
1233 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1234 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1235 66, 67, 68, 69, 70, 71, 163, 164, 165, 166,
1236 167, 168, 169, 0, 0, 170, 171, 0, 0, 0,
1237 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1238 0, 0, 0, 0, 73, 74, 75, 76, 0, 77,
1239 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1240 0, 82, 0, 0, 0, 0, 0, 0, 0, 0,
1241 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1242 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1243 0, 0, 0, 0, 0, 83, 0, 84, 0, 0,
1244 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1245 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1246 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1247 0, 0, 172, 0, 0, 0, 0, 0, 173, 174,
1248 175, 176, 0, 0, 0, 0, 0, 0, 0, 0,
1249 0, 0, 0, 177, 178, 307, 12, 13, 14, 15,
1250 16, 17, 153, 154, 155, 0, 156, 157, 158, 159,
1251 160, 161, 162, 18, 19, 20, 21, 22, 23, 24,
1252 25, 26, 27, 28, 29, 30, 31, 32, 0, 33,
1253 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
1254 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1255 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1256 64, 65, 66, 67, 68, 69, 70, 71, 163, 164,
1257 165, 166, 167, 168, 169, 0, 0, 170, 171, 0,
1258 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1259 0, 0, 0, 0, 0, 0, 73, 74, 75, 76,
1260 0, 77, 0, 0, 0, 0, 0, 0, 0, 0,
1261 0, 0, 0, 82, 0, 0, 0, 0, 0, 0,
1262 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1263 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1264 0, 0, 0, 0, 0, 0, 0, 83, 0, 84,
1265 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1266 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1267 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1268 0, 0, 0, 0, 172, 0, 0, 0, 0, 0,
1269 173, 174, 175, 176, 0, 0, 0, 0, 0, 0,
1270 0, 0, 0, 0, 0, 177, 178, 338, 12, 13,
1271 14, 15, 16, 17, 153, 154, 155, 0, 156, 157,
1272 158, 159, 160, 161, 162, 18, 19, 20, 21, 22,
1273 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
1274 0, 33, 34, 35, 36, 37, 38, 39, 40, 41,
1275 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1276 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1277 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1278 163, 164, 165, 166, 167, 168, 169, 0, 0, 170,
1279 171, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1280 0, 0, 0, 0, 0, 0, 0, 0, 73, 74,
1281 75, 76, 0, 77, 0, 0, 0, 0, 0, 0,
1282 0, 0, 0, 0, 0, 82, 0, 0, 0, 0,
1283 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1284 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1285 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,
1286 0, 84, 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, 0, 0, 172, 0, 0, 0,
1290 0, 0, 173, 174, 175, 176, 0, 0, 0, 0,
1291 0, 0, 0, 0, 0, 0, 0, 177, 178, 12,
1292 13, 14, 15, 16, 17, 153, 154, 155, 0, 156,
1293 157, 158, 159, 160, 161, 162, 18, 19, 20, 21,
1294 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
1295 32, 0, 33, 34, 35, 36, 37, 38, 39, 40,
1296 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1297 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1298 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1299 71, 163, 164, 165, 166, 167, 168, 169, 0, 0,
1300 170, 171, 0, 0, 0, 0, 0, 0, 0, 0,
1301 0, 0, 0, 0, 0, 0, 0, 0, 0, 73,
1302 74, 75, 76, 0, 77, 0, 0, 0, 0, 0,
1303 0, 0, 0, 0, 0, 0, 82, 0, 0, 0,
1304 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1305 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1306 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1307 83, 0, 84, 0, 0, 0, 0, 0, 0, 0,
1308 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1309 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1310 0, 0, 0, 0, 0, 0, 0, 172, 0, 0,
1311 0, 0, 0, 173, 174, 175, 176, 12, 13, 14,
1312 15, 16, 17, 0, 0, 0, 0, 0, 177, 124,
1313 0, 0, 0, 0, 18, 19, 20, 21, 22, 23,
1314 24, 25, 26, 27, 28, 29, 30, 31, 32, 0,
1315 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
1316 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1317 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1318 63, 64, 65, 66, 67, 68, 69, 70, 71, 0,
1319 164, 165, 166, 167, 168, 169, 0, 0, 170, 171,
1320 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1321 0, 0, 0, 0, 0, 0, 0, 73, 74, 75,
1322 76, 0, 77, 0, 0, 0, 0, 0, 0, 0,
1323 0, 0, 0, 0, 82, 14, 15, 16, 17, 0,
1324 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1325 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
1326 28, 29, 0, 0, 0, 0, 0, 0, 83, 0,
1327 84, 38, 39, 40, 41, 42, 43, 44, 45, 46,
1328 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1329 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1330 67, 68, 69, 70, 71, 172, 72, 0, 0, 0,
1331 0, 173, 174, 175, 176, 0, 0, 0, 0, 0,
1332 0, 0, 0, 0, 0, 0, 177, 0, 0, 0,
1333 0, 0, 0, 0, 74, 75, 76, 0, 0, 0,
1334 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1335 0, 14, 15, 16, 17, 0, 0, 0, 0, 0,
1336 0, 0, 0, 0, 0, 0, 18, 19, 20, 21,
1337 22, 23, 24, 25, 26, 27, 28, 29, 0, 0,
1338 0, 0, 0, 0, 83, 0, 84, 38, 39, 40,
1339 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1340 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1341 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1342 71, 0, 72, 0, 0, 0, 0, 0, 0, 0,
1343 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1344 0, 0, 0, 0, 239, 0, 0, 0, 0, 0,
1345 74, 75, 76, 0, 0, 0, 0, 0, 0, 0,
1346 0, 0, 0, 0, 0, 0, 0, 14, 15, 16,
1347 17, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1348 0, 0, 18, 19, 20, 21, 22, 23, 24, 25,
1349 26, 27, 28, 29, 0, 0, 0, 0, 0, 0,
1350 83, 0, 84, 38, 39, 40, 41, 42, 43, 44,
1351 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1352 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1353 65, 66, 67, 68, 69, 70, 71, 0, 164, 165,
1354 166, 167, 168, 169, 0, 0, 170, 171, 0, 0,
1355 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1356 319, 0, 0, 0, 0, 0, 74, 75, 76, 0,
1357 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1358 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1359 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1360 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1361 0, 0, 0, 0, 0, 0, 83, 0, 84, 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, 172, 0, 0, 0, 0, 0, 173,
1366 174, 175, 176, 12, 13, 14, 15, 16, 17, 0,
1367 0, 0, 0, 0, 251, 0, 0, 0, 0, 0,
1368 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
1369 28, 29, 30, 31, 32, 0, 33, 34, 35, 36,
1370 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
1371 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1372 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1373 67, 68, 69, 70, 71, 0, 164, 165, 166, 167,
1374 168, 169, 0, 0, 170, 171, 0, 0, 0, 0,
1375 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1376 0, 0, 0, 333, 74, 75, 76, 0, 0, 0,
1377 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1378 82, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1379 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1380 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1381 0, 0, 0, 0, 83, 0, 84, 0, 0, 0,
1382 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1383 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1384 0, 0, 0, 0, 0, 0, 14, 15, 16, 17,
1385 0, 172, 0, 0, 0, 0, 0, 173, 174, 175,
1386 176, 18, 19, 20, 21, 22, 23, 24, 25, 26,
1387 27, 28, 29, 0, 0, 0, 0, 0, 0, 0,
1388 0, 0, 38, 39, 40, 41, 42, 43, 44, 45,
1389 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1390 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1391 66, 67, 68, 69, 70, 71, 0, 164, 165, 166,
1392 167, 168, 169, 0, 0, 170, 171, 0, 0, 0,
1393 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1394 0, 0, 0, 0, 0, 74, 75, 76, 0, 0,
1395 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1396 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1397 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1398 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1399 0, 0, 0, 0, 0, 83, 0, 84, 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, 14, 15, 16,
1403 17, 0, 172, 0, 0, 229, 0, 0, 173, 174,
1404 175, 176, 18, 19, 20, 21, 22, 23, 24, 25,
1405 26, 27, 28, 29, 0, 0, 0, 0, 0, 0,
1406 0, 0, 0, 38, 39, 40, 41, 42, 43, 44,
1407 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1408 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1409 65, 66, 67, 68, 69, 70, 71, 0, 164, 165,
1410 166, 167, 168, 169, 0, 0, 170, 171, 0, 0,
1411 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1412 0, 0, 0, 0, 0, 0, 74, 75, 76, 0,
1413 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1414 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1415 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1416 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1417 0, 0, 0, 0, 0, 0, 83, 0, 84, 0,
1418 0, 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, 14, 15,
1421 16, 17, 0, 172, 0, 0, 314, 0, 0, 173,
1422 174, 175, 176, 18, 19, 20, 21, 22, 23, 24,
1423 25, 26, 27, 28, 29, 0, 0, 0, 0, 0,
1424 0, 0, 0, 0, 38, 39, 40, 41, 42, 43,
1425 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1426 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1427 64, 65, 66, 67, 68, 69, 70, 71, 0, 164,
1428 165, 166, 167, 168, 169, 0, 0, 170, 171, 0,
1429 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1430 0, 0, 0, 0, 0, 0, 0, 74, 75, 76,
1431 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1432 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1433 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1434 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1435 0, 0, 0, 0, 0, 0, 0, 83, 0, 84,
1436 0, 0, 0, 0, 0, 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, 14,
1439 15, 16, 17, 0, 172, 0, 0, 367, 0, 0,
1440 173, 174, 175, 176, 18, 19, 20, 21, 22, 23,
1441 24, 25, 26, 27, 28, 29, 0, 0, 0, 0,
1442 0, 0, 0, 0, 0, 38, 39, 40, 41, 42,
1443 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1444 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1445 63, 64, 65, 66, 67, 68, 69, 70, 71, 0,
1446 164, 165, 166, 167, 168, 169, 0, 0, 170, 171,
1447 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1448 0, 0, 0, 0, 0, 0, 0, 0, 74, 75,
1449 76, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1450 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1451 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1452 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1453 0, 0, 0, 0, 0, 0, 0, 0, 83, 0,
1454 84, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1455 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1456 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1457 14, 15, 16, 17, 0, 172, 0, 0, 0, 0,
1458 0, 173, 174, 175, 176, 18, 19, 20, 21, 22,
1459 23, 24, 25, 26, 27, 28, 29, 0, 0, 0,
1460 0, 0, 0, 0, 0, 0, 38, 39, 40, 41,
1461 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1462 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1463 62, 63, 64, 65, 66, 67, 68, 69, 70, 269,
1464 0, 164, 165, 166, 167, 168, 169, 0, 0, 170,
1465 171, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1466 0, 0, 0, 0, 0, 0, 0, 0, 0, 74,
1467 75, 76, 0, 0, 0, 0, 0, 0, 0, 0,
1468 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1469 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1470 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1471 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,
1472 0, 84, 0, 0, 0, 0, 0, 0, 0, 0,
1473 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1474 0, 0, 0, 0, 0, 0, 0, 0, 0, 12,
1475 13, 14, 15, 16, 17, 0, 172, 0, 0, 0,
1476 0, 0, 173, 174, 175, 176, 18, 19, 20, 21,
1477 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
1478 32, 0, 33, 34, 35, 36, 37, 38, 39, 40,
1479 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1480 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1481 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1482 71, 0, 72, 0, 0, 0, 0, 0, 0, 0,
1483 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1484 0, 0, 0, 0, 0, 0, 0, 0, 0, 73,
1485 74, 75, 76, 0, 77, 0, 0, 0, 0, 0,
1486 0, 0, 78, 79, 80, 81, 82, 14, 15, 16,
1487 17, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1488 0, 0, 18, 19, 20, 21, 22, 23, 24, 25,
1489 26, 27, 28, 29, 0, 0, 0, 0, 0, 0,
1490 83, 0, 84, 38, 39, 40, 41, 42, 43, 44,
1491 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1492 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1493 65, 66, 67, 68, 69, 70, 71, 0, 341, 14,
1494 15, 16, 17, 169, 0, 0, 0, 0, 0, 0,
1495 0, 0, 0, 0, 18, 19, 20, 21, 22, 23,
1496 24, 25, 26, 27, 28, 29, 74, 75, 76, 0,
1497 0, 0, 0, 0, 0, 38, 39, 40, 41, 42,
1498 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1499 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1500 63, 64, 65, 66, 67, 68, 69, 70, 71, 0,
1501 72, 14, 15, 16, 17, 0, 83, 0, 84, 0,
1502 0, 0, 0, 0, 0, 0, 18, 19, 20, 21,
1503 22, 23, 24, 25, 26, 27, 28, 29, 74, 75,
1504 76, 0, 0, 0, 0, 0, 0, 38, 39, 40,
1505 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1506 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1507 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1508 71, 0, 72, 0, 0, 0, 0, 0, 83, 0,
1509 84, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1510 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1511 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1512 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1513 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1514 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1515 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1519 static const yytype_int16 yycheck
[] =
1521 9, 73, 73, 159, 155, 161, 141, 76, 141, 4,
1522 86, 87, 91, 9, 84, 85, 172, 76, 146, 9,
1523 3, 4, 381, 95, 96, 78, 313, 256, 4, 193,
1524 104, 105, 106, 392, 227, 170, 171, 0, 33, 34,
1525 35, 191, 114, 193, 196, 3, 4, 211, 192, 32,
1526 33, 34, 196, 36, 37, 109, 191, 33, 34, 35,
1527 212, 211, 213, 93, 94, 95, 96, 97, 98, 99,
1528 100, 101, 102, 196, 32, 33, 34, 86, 36, 37,
1529 38, 39, 40, 370, 197, 198, 196, 113, 97, 212,
1530 86, 188, 227, 249, 227, 196, 86, 253, 385, 328,
1531 256, 388, 212, 112, 103, 110, 196, 235, 264, 396,
1532 261, 212, 196, 212, 213, 124, 403, 116, 76, 312,
1533 210, 82, 83, 193, 133, 195, 210, 320, 204, 205,
1534 209, 228, 191, 88, 89, 144, 192, 146, 33, 34,
1535 196, 192, 37, 192, 213, 196, 155, 196, 304, 76,
1536 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
1537 295, 296, 297, 298, 299, 300, 301, 302, 303, 178,
1538 192, 268, 328, 366, 196, 112, 192, 312, 113, 312,
1539 196, 211, 33, 34, 35, 320, 283, 320, 292, 293,
1540 294, 295, 113, 201, 202, 203, 113, 192, 113, 288,
1541 289, 192, 290, 291, 213, 296, 297, 191, 305, 196,
1542 76, 193, 76, 213, 76, 224, 313, 76, 374, 113,
1543 76, 191, 191, 212, 212, 211, 235, 378, 192, 191,
1544 207, 366, 212, 366, 212, 391, 210, 191, 191, 248,
1545 206, 3, 4, 208, 90, 92, 191, 256, 76, 78,
1546 194, 193, 261, 212, 75, 193, 192, 408, 191, 211,
1547 194, 333, 333, 76, 196, 194, 192, 191, 211, 194,
1548 32, 33, 34, 370, 36, 37, 38, 39, 40, 12,
1549 211, 194, 212, 192, 194, 213, 383, 298, 385, 211,
1550 265, 388, 211, 299, 212, 302, 300, 127, 301, 396,
1551 134, 303, 77, 244, 224, 144, 403, 321, 224, 248,
1552 392, 379, 88, 178, 86, 328, -1, -1, -1, 328,
1553 -1, -1, -1, -1, -1, 248, -1, -1, -1, -1,
1554 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1555 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1556 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1557 -1, -1, -1, -1, -1, -1, -1, -1, -1, 378,
1558 -1, -1, 381, -1, -1, -1, -1, -1, -1, -1,
1559 -1, -1, -1, 392, -1, -1, -1, -1, -1, -1,
1560 3, 4, 5, 6, 7, 8, 9, 10, 11, 408,
1561 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
1562 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
1563 33, 34, -1, 36, 37, 38, 39, 40, 41, 42,
1564 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1565 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1566 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
1567 73, 74, 75, 76, 77, 78, 79, 80, 81, -1,
1568 -1, 84, 85, -1, -1, -1, -1, -1, -1, -1,
1569 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1570 103, 104, 105, 106, -1, 108, -1, -1, -1, -1,
1571 -1, -1, -1, -1, -1, -1, -1, 120, -1, -1,
1572 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1573 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1574 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1575 -1, 154, -1, 156, -1, -1, -1, -1, -1, -1,
1576 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1577 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1578 -1, -1, -1, -1, -1, -1, -1, -1, 191, -1,
1579 -1, -1, -1, -1, 197, 198, 199, 200, -1, -1,
1580 -1, -1, -1, -1, -1, -1, -1, -1, -1, 212,
1581 213, 214, 3, 4, 5, 6, 7, 8, 9, 10,
1582 11, -1, 13, 14, 15, 16, 17, 18, 19, 20,
1583 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
1584 31, 32, 33, 34, -1, 36, 37, 38, 39, 40,
1585 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1586 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1587 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1588 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
1589 81, -1, -1, 84, 85, -1, -1, -1, -1, -1,
1590 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1591 -1, -1, 103, 104, 105, 106, -1, 108, -1, -1,
1592 -1, -1, -1, -1, -1, -1, -1, -1, -1, 120,
1593 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1594 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1595 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1596 -1, -1, -1, 154, -1, 156, -1, -1, -1, -1,
1597 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1598 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1599 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1600 191, -1, -1, -1, -1, -1, 197, 198, 199, 200,
1601 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1602 -1, 212, 213, 214, 3, 4, 5, 6, 7, 8,
1603 9, 10, 11, -1, 13, 14, 15, 16, 17, 18,
1604 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1605 29, 30, 31, 32, 33, 34, -1, 36, 37, 38,
1606 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1607 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1608 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1609 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
1610 79, 80, 81, -1, -1, 84, 85, -1, -1, -1,
1611 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1612 -1, -1, -1, -1, 103, 104, 105, 106, -1, 108,
1613 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1614 -1, 120, -1, -1, -1, -1, -1, -1, -1, -1,
1615 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1616 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1617 -1, -1, -1, -1, -1, 154, -1, 156, -1, -1,
1618 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1619 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1620 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1621 -1, -1, 191, -1, -1, -1, -1, -1, 197, 198,
1622 199, 200, -1, -1, -1, -1, -1, -1, -1, -1,
1623 -1, -1, -1, 212, 213, 214, 3, 4, 5, 6,
1624 7, 8, 9, 10, 11, -1, 13, 14, 15, 16,
1625 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
1626 27, 28, 29, 30, 31, 32, 33, 34, -1, 36,
1627 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
1628 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1629 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1630 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1631 77, 78, 79, 80, 81, -1, -1, 84, 85, -1,
1632 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1633 -1, -1, -1, -1, -1, -1, 103, 104, 105, 106,
1634 -1, 108, -1, -1, -1, -1, -1, -1, -1, -1,
1635 -1, -1, -1, 120, -1, -1, -1, -1, -1, -1,
1636 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1637 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1638 -1, -1, -1, -1, -1, -1, -1, 154, -1, 156,
1639 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1640 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1641 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1642 -1, -1, -1, -1, 191, -1, -1, -1, -1, -1,
1643 197, 198, 199, 200, -1, -1, -1, -1, -1, -1,
1644 -1, -1, -1, -1, -1, 212, 213, 214, 3, 4,
1645 5, 6, 7, 8, 9, 10, 11, -1, 13, 14,
1646 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
1647 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1648 -1, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1649 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1650 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1651 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1652 75, 76, 77, 78, 79, 80, 81, -1, -1, 84,
1653 85, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1654 -1, -1, -1, -1, -1, -1, -1, -1, 103, 104,
1655 105, 106, -1, 108, -1, -1, -1, -1, -1, -1,
1656 -1, -1, -1, -1, -1, 120, -1, -1, -1, -1,
1657 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1658 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1659 -1, -1, -1, -1, -1, -1, -1, -1, -1, 154,
1660 -1, 156, -1, -1, -1, -1, -1, -1, -1, -1,
1661 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1662 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1663 -1, -1, -1, -1, -1, -1, 191, -1, -1, -1,
1664 -1, -1, 197, 198, 199, 200, -1, -1, -1, -1,
1665 -1, -1, -1, -1, -1, -1, -1, 212, 213, 3,
1666 4, 5, 6, 7, 8, 9, 10, 11, -1, 13,
1667 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
1668 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
1669 34, -1, 36, 37, 38, 39, 40, 41, 42, 43,
1670 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1671 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1672 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1673 74, 75, 76, 77, 78, 79, 80, 81, -1, -1,
1674 84, 85, -1, -1, -1, -1, -1, -1, -1, -1,
1675 -1, -1, -1, -1, -1, -1, -1, -1, -1, 103,
1676 104, 105, 106, -1, 108, -1, -1, -1, -1, -1,
1677 -1, -1, -1, -1, -1, -1, 120, -1, -1, -1,
1678 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1679 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1680 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1681 154, -1, 156, -1, -1, -1, -1, -1, -1, -1,
1682 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1683 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1684 -1, -1, -1, -1, -1, -1, -1, 191, -1, -1,
1685 -1, -1, -1, 197, 198, 199, 200, 3, 4, 5,
1686 6, 7, 8, -1, -1, -1, -1, -1, 212, 213,
1687 -1, -1, -1, -1, 20, 21, 22, 23, 24, 25,
1688 26, 27, 28, 29, 30, 31, 32, 33, 34, -1,
1689 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
1690 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1691 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1692 66, 67, 68, 69, 70, 71, 72, 73, 74, -1,
1693 76, 77, 78, 79, 80, 81, -1, -1, 84, 85,
1694 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1695 -1, -1, -1, -1, -1, -1, -1, 103, 104, 105,
1696 106, -1, 108, -1, -1, -1, -1, -1, -1, -1,
1697 -1, -1, -1, -1, 120, 5, 6, 7, 8, -1,
1698 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1699 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
1700 30, 31, -1, -1, -1, -1, -1, -1, 154, -1,
1701 156, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1702 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1703 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1704 70, 71, 72, 73, 74, 191, 76, -1, -1, -1,
1705 -1, 197, 198, 199, 200, -1, -1, -1, -1, -1,
1706 -1, -1, -1, -1, -1, -1, 212, -1, -1, -1,
1707 -1, -1, -1, -1, 104, 105, 106, -1, -1, -1,
1708 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1709 -1, 5, 6, 7, 8, -1, -1, -1, -1, -1,
1710 -1, -1, -1, -1, -1, -1, 20, 21, 22, 23,
1711 24, 25, 26, 27, 28, 29, 30, 31, -1, -1,
1712 -1, -1, -1, -1, 154, -1, 156, 41, 42, 43,
1713 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1714 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1715 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1716 74, -1, 76, -1, -1, -1, -1, -1, -1, -1,
1717 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1718 -1, -1, -1, -1, 214, -1, -1, -1, -1, -1,
1719 104, 105, 106, -1, -1, -1, -1, -1, -1, -1,
1720 -1, -1, -1, -1, -1, -1, -1, 5, 6, 7,
1721 8, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1722 -1, -1, 20, 21, 22, 23, 24, 25, 26, 27,
1723 28, 29, 30, 31, -1, -1, -1, -1, -1, -1,
1724 154, -1, 156, 41, 42, 43, 44, 45, 46, 47,
1725 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1726 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1727 68, 69, 70, 71, 72, 73, 74, -1, 76, 77,
1728 78, 79, 80, 81, -1, -1, 84, 85, -1, -1,
1729 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1730 214, -1, -1, -1, -1, -1, 104, 105, 106, -1,
1731 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1732 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1733 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1734 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1735 -1, -1, -1, -1, -1, -1, 154, -1, 156, -1,
1736 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1737 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1738 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1739 -1, -1, -1, 191, -1, -1, -1, -1, -1, 197,
1740 198, 199, 200, 3, 4, 5, 6, 7, 8, -1,
1741 -1, -1, -1, -1, 212, -1, -1, -1, -1, -1,
1742 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
1743 30, 31, 32, 33, 34, -1, 36, 37, 38, 39,
1744 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1745 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1746 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1747 70, 71, 72, 73, 74, -1, 76, 77, 78, 79,
1748 80, 81, -1, -1, 84, 85, -1, -1, -1, -1,
1749 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1750 -1, -1, -1, 103, 104, 105, 106, -1, -1, -1,
1751 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1752 120, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1753 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1754 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1755 -1, -1, -1, -1, 154, -1, 156, -1, -1, -1,
1756 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1757 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1758 -1, -1, -1, -1, -1, -1, 5, 6, 7, 8,
1759 -1, 191, -1, -1, -1, -1, -1, 197, 198, 199,
1760 200, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1761 29, 30, 31, -1, -1, -1, -1, -1, -1, -1,
1762 -1, -1, 41, 42, 43, 44, 45, 46, 47, 48,
1763 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1764 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1765 69, 70, 71, 72, 73, 74, -1, 76, 77, 78,
1766 79, 80, 81, -1, -1, 84, 85, -1, -1, -1,
1767 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1768 -1, -1, -1, -1, -1, 104, 105, 106, -1, -1,
1769 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1770 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1771 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1772 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1773 -1, -1, -1, -1, -1, 154, -1, 156, -1, -1,
1774 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1775 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1776 -1, -1, -1, -1, -1, -1, -1, 5, 6, 7,
1777 8, -1, 191, -1, -1, 194, -1, -1, 197, 198,
1778 199, 200, 20, 21, 22, 23, 24, 25, 26, 27,
1779 28, 29, 30, 31, -1, -1, -1, -1, -1, -1,
1780 -1, -1, -1, 41, 42, 43, 44, 45, 46, 47,
1781 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1782 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1783 68, 69, 70, 71, 72, 73, 74, -1, 76, 77,
1784 78, 79, 80, 81, -1, -1, 84, 85, -1, -1,
1785 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1786 -1, -1, -1, -1, -1, -1, 104, 105, 106, -1,
1787 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1788 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1789 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1790 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1791 -1, -1, -1, -1, -1, -1, 154, -1, 156, -1,
1792 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1793 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1794 -1, -1, -1, -1, -1, -1, -1, -1, 5, 6,
1795 7, 8, -1, 191, -1, -1, 194, -1, -1, 197,
1796 198, 199, 200, 20, 21, 22, 23, 24, 25, 26,
1797 27, 28, 29, 30, 31, -1, -1, -1, -1, -1,
1798 -1, -1, -1, -1, 41, 42, 43, 44, 45, 46,
1799 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1800 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1801 67, 68, 69, 70, 71, 72, 73, 74, -1, 76,
1802 77, 78, 79, 80, 81, -1, -1, 84, 85, -1,
1803 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1804 -1, -1, -1, -1, -1, -1, -1, 104, 105, 106,
1805 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1806 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1807 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1808 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1809 -1, -1, -1, -1, -1, -1, -1, 154, -1, 156,
1810 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1811 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1812 -1, -1, -1, -1, -1, -1, -1, -1, -1, 5,
1813 6, 7, 8, -1, 191, -1, -1, 194, -1, -1,
1814 197, 198, 199, 200, 20, 21, 22, 23, 24, 25,
1815 26, 27, 28, 29, 30, 31, -1, -1, -1, -1,
1816 -1, -1, -1, -1, -1, 41, 42, 43, 44, 45,
1817 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1818 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1819 66, 67, 68, 69, 70, 71, 72, 73, 74, -1,
1820 76, 77, 78, 79, 80, 81, -1, -1, 84, 85,
1821 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1822 -1, -1, -1, -1, -1, -1, -1, -1, 104, 105,
1823 106, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1824 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1825 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1826 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1827 -1, -1, -1, -1, -1, -1, -1, -1, 154, -1,
1828 156, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1829 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1830 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1831 5, 6, 7, 8, -1, 191, -1, -1, -1, -1,
1832 -1, 197, 198, 199, 200, 20, 21, 22, 23, 24,
1833 25, 26, 27, 28, 29, 30, 31, -1, -1, -1,
1834 -1, -1, -1, -1, -1, -1, 41, 42, 43, 44,
1835 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1836 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1837 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1838 -1, 76, 77, 78, 79, 80, 81, -1, -1, 84,
1839 85, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1840 -1, -1, -1, -1, -1, -1, -1, -1, -1, 104,
1841 105, 106, -1, -1, -1, -1, -1, -1, -1, -1,
1842 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1843 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1844 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1845 -1, -1, -1, -1, -1, -1, -1, -1, -1, 154,
1846 -1, 156, -1, -1, -1, -1, -1, -1, -1, -1,
1847 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1848 -1, -1, -1, -1, -1, -1, -1, -1, -1, 3,
1849 4, 5, 6, 7, 8, -1, 191, -1, -1, -1,
1850 -1, -1, 197, 198, 199, 200, 20, 21, 22, 23,
1851 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
1852 34, -1, 36, 37, 38, 39, 40, 41, 42, 43,
1853 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1854 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1855 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1856 74, -1, 76, -1, -1, -1, -1, -1, -1, -1,
1857 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1858 -1, -1, -1, -1, -1, -1, -1, -1, -1, 103,
1859 104, 105, 106, -1, 108, -1, -1, -1, -1, -1,
1860 -1, -1, 116, 117, 118, 119, 120, 5, 6, 7,
1861 8, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1862 -1, -1, 20, 21, 22, 23, 24, 25, 26, 27,
1863 28, 29, 30, 31, -1, -1, -1, -1, -1, -1,
1864 154, -1, 156, 41, 42, 43, 44, 45, 46, 47,
1865 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1866 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1867 68, 69, 70, 71, 72, 73, 74, -1, 76, 5,
1868 6, 7, 8, 81, -1, -1, -1, -1, -1, -1,
1869 -1, -1, -1, -1, 20, 21, 22, 23, 24, 25,
1870 26, 27, 28, 29, 30, 31, 104, 105, 106, -1,
1871 -1, -1, -1, -1, -1, 41, 42, 43, 44, 45,
1872 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1873 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1874 66, 67, 68, 69, 70, 71, 72, 73, 74, -1,
1875 76, 5, 6, 7, 8, -1, 154, -1, 156, -1,
1876 -1, -1, -1, -1, -1, -1, 20, 21, 22, 23,
1877 24, 25, 26, 27, 28, 29, 30, 31, 104, 105,
1878 106, -1, -1, -1, -1, -1, -1, 41, 42, 43,
1879 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1880 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1881 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1882 74, -1, 76, -1, -1, -1, -1, -1, 154, -1,
1883 156, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1884 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1885 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1886 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1887 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1888 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1889 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1893 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1894 symbol of state STATE-NUM. */
1895 static const yytype_uint16 yystos
[] =
1897 0, 109, 216, 218, 78, 0, 220, 113, 110, 217,
1898 221, 76, 3, 4, 5, 6, 7, 8, 20, 21,
1899 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
1900 32, 33, 34, 36, 37, 38, 39, 40, 41, 42,
1901 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1902 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1903 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
1904 73, 74, 76, 103, 104, 105, 106, 108, 116, 117,
1905 118, 119, 120, 154, 156, 219, 222, 252, 253, 254,
1906 255, 256, 261, 262, 263, 264, 267, 269, 270, 271,
1907 272, 273, 274, 275, 276, 300, 301, 112, 33, 34,
1908 37, 76, 213, 76, 267, 270, 275, 113, 113, 113,
1909 113, 191, 300, 212, 213, 287, 192, 196, 4, 33,
1910 34, 35, 258, 259, 268, 196, 212, 76, 270, 270,
1911 271, 193, 272, 76, 213, 271, 277, 278, 270, 272,
1912 76, 265, 266, 9, 10, 11, 13, 14, 15, 16,
1913 17, 18, 19, 75, 76, 77, 78, 79, 80, 81,
1914 84, 85, 191, 197, 198, 199, 200, 212, 213, 214,
1915 223, 224, 225, 227, 228, 229, 230, 231, 232, 233,
1916 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
1917 244, 245, 246, 247, 248, 250, 252, 253, 271, 282,
1918 283, 284, 285, 288, 289, 290, 293, 294, 295, 299,
1919 258, 257, 260, 271, 259, 76, 191, 193, 211, 194,
1920 234, 247, 251, 271, 113, 277, 76, 279, 280, 214,
1921 278, 212, 211, 192, 196, 212, 212, 283, 191, 191,
1922 212, 212, 250, 191, 250, 210, 191, 234, 234, 250,
1923 214, 288, 84, 85, 193, 195, 192, 192, 196, 74,
1924 248, 191, 93, 94, 95, 96, 97, 98, 99, 100,
1925 101, 102, 211, 249, 234, 201, 202, 203, 197, 198,
1926 82, 83, 86, 87, 204, 205, 88, 89, 206, 207,
1927 208, 90, 92, 91, 209, 196, 212, 214, 283, 76,
1928 257, 260, 193, 211, 194, 251, 248, 281, 194, 214,
1929 193, 196, 212, 78, 266, 75, 282, 289, 296, 250,
1930 212, 250, 210, 103, 250, 263, 292, 192, 214, 226,
1931 250, 76, 229, 248, 248, 234, 234, 234, 236, 236,
1932 237, 237, 238, 238, 238, 238, 239, 239, 240, 241,
1933 242, 243, 244, 245, 250, 248, 193, 194, 251, 281,
1934 211, 194, 251, 280, 191, 292, 297, 298, 192, 192,
1935 76, 192, 194, 210, 251, 211, 194, 281, 211, 194,
1936 250, 212, 192, 283, 291, 285, 211, 284, 286, 287,
1937 248, 194, 281, 211, 281, 192, 250, 286, 12, 281,
1941 #define yyerrok (yyerrstatus = 0)
1942 #define yyclearin (yychar = YYEMPTY)
1943 #define YYEMPTY (-2)
1946 #define YYACCEPT goto yyacceptlab
1947 #define YYABORT goto yyabortlab
1948 #define YYERROR goto yyerrorlab
1951 /* Like YYERROR except do call yyerror. This remains here temporarily
1952 to ease the transition to the new meaning of YYERROR, for GCC.
1953 Once GCC version 2 has supplanted version 1, this can go. */
1955 #define YYFAIL goto yyerrlab
1957 #define YYRECOVERING() (!!yyerrstatus)
1959 #define YYBACKUP(Token, Value) \
1961 if (yychar == YYEMPTY && yylen == 1) \
1965 yytoken = YYTRANSLATE (yychar); \
1971 yyerror (&yylloc, state, YY_("syntax error: cannot back up")); \
1978 #define YYERRCODE 256
1981 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
1982 If N is 0, then set CURRENT to the empty location which ends
1983 the previous symbol: RHS[0] (always defined). */
1985 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
1986 #ifndef YYLLOC_DEFAULT
1987 # define YYLLOC_DEFAULT(Current, Rhs, N) \
1991 (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
1992 (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
1993 (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
1994 (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
1998 (Current).first_line = (Current).last_line = \
1999 YYRHSLOC (Rhs, 0).last_line; \
2000 (Current).first_column = (Current).last_column = \
2001 YYRHSLOC (Rhs, 0).last_column; \
2007 /* YY_LOCATION_PRINT -- Print the location on the stream.
2008 This macro was not mandated originally: define only if we know
2009 we won't break user code: when these are the locations we know. */
2011 #ifndef YY_LOCATION_PRINT
2012 # if YYLTYPE_IS_TRIVIAL
2013 # define YY_LOCATION_PRINT(File, Loc) \
2014 fprintf (File, "%d.%d-%d.%d", \
2015 (Loc).first_line, (Loc).first_column, \
2016 (Loc).last_line, (Loc).last_column)
2018 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2023 /* YYLEX -- calling `yylex' with the right arguments. */
2026 # define YYLEX yylex (&yylval, &yylloc, YYLEX_PARAM)
2028 # define YYLEX yylex (&yylval, &yylloc, scanner)
2031 /* Enable debugging if requested. */
2035 # include <stdio.h> /* INFRINGES ON USER NAME SPACE */
2036 # define YYFPRINTF fprintf
2039 # define YYDPRINTF(Args) \
2045 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
2049 YYFPRINTF (stderr, "%s ", Title); \
2050 yy_symbol_print (stderr, \
2051 Type, Value, Location, state); \
2052 YYFPRINTF (stderr, "\n"); \
2057 /*--------------------------------.
2058 | Print this symbol on YYOUTPUT. |
2059 `--------------------------------*/
2062 #if (defined __STDC__ || defined __C99__FUNC__ \
2063 || defined __cplusplus || defined _MSC_VER)
2065 yy_symbol_value_print (FILE *yyoutput
, int yytype
, YYSTYPE
const * const yyvaluep
, YYLTYPE
const * const yylocationp
, struct _mesa_glsl_parse_state
*state
)
2068 yy_symbol_value_print (yyoutput
, yytype
, yyvaluep
, yylocationp
, state
)
2071 YYSTYPE
const * const yyvaluep
;
2072 YYLTYPE
const * const yylocationp
;
2073 struct _mesa_glsl_parse_state
*state
;
2078 YYUSE (yylocationp
);
2081 if (yytype
< YYNTOKENS
)
2082 YYPRINT (yyoutput
, yytoknum
[yytype
], *yyvaluep
);
2094 /*--------------------------------.
2095 | Print this symbol on YYOUTPUT. |
2096 `--------------------------------*/
2098 #if (defined __STDC__ || defined __C99__FUNC__ \
2099 || defined __cplusplus || defined _MSC_VER)
2101 yy_symbol_print (FILE *yyoutput
, int yytype
, YYSTYPE
const * const yyvaluep
, YYLTYPE
const * const yylocationp
, struct _mesa_glsl_parse_state
*state
)
2104 yy_symbol_print (yyoutput
, yytype
, yyvaluep
, yylocationp
, state
)
2107 YYSTYPE
const * const yyvaluep
;
2108 YYLTYPE
const * const yylocationp
;
2109 struct _mesa_glsl_parse_state
*state
;
2112 if (yytype
< YYNTOKENS
)
2113 YYFPRINTF (yyoutput
, "token %s (", yytname
[yytype
]);
2115 YYFPRINTF (yyoutput
, "nterm %s (", yytname
[yytype
]);
2117 YY_LOCATION_PRINT (yyoutput
, *yylocationp
);
2118 YYFPRINTF (yyoutput
, ": ");
2119 yy_symbol_value_print (yyoutput
, yytype
, yyvaluep
, yylocationp
, state
);
2120 YYFPRINTF (yyoutput
, ")");
2123 /*------------------------------------------------------------------.
2124 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
2126 `------------------------------------------------------------------*/
2128 #if (defined __STDC__ || defined __C99__FUNC__ \
2129 || defined __cplusplus || defined _MSC_VER)
2131 yy_stack_print (yytype_int16
*yybottom
, yytype_int16
*yytop
)
2134 yy_stack_print (yybottom
, yytop
)
2135 yytype_int16
*yybottom
;
2136 yytype_int16
*yytop
;
2139 YYFPRINTF (stderr
, "Stack now");
2140 for (; yybottom
<= yytop
; yybottom
++)
2142 int yybot
= *yybottom
;
2143 YYFPRINTF (stderr
, " %d", yybot
);
2145 YYFPRINTF (stderr
, "\n");
2148 # define YY_STACK_PRINT(Bottom, Top) \
2151 yy_stack_print ((Bottom), (Top)); \
2155 /*------------------------------------------------.
2156 | Report that the YYRULE is going to be reduced. |
2157 `------------------------------------------------*/
2159 #if (defined __STDC__ || defined __C99__FUNC__ \
2160 || defined __cplusplus || defined _MSC_VER)
2162 yy_reduce_print (YYSTYPE
*yyvsp
, YYLTYPE
*yylsp
, int yyrule
, struct _mesa_glsl_parse_state
*state
)
2165 yy_reduce_print (yyvsp
, yylsp
, yyrule
, state
)
2169 struct _mesa_glsl_parse_state
*state
;
2172 int yynrhs
= yyr2
[yyrule
];
2174 unsigned long int yylno
= yyrline
[yyrule
];
2175 YYFPRINTF (stderr
, "Reducing stack by rule %d (line %lu):\n",
2177 /* The symbols being reduced. */
2178 for (yyi
= 0; yyi
< yynrhs
; yyi
++)
2180 YYFPRINTF (stderr
, " $%d = ", yyi
+ 1);
2181 yy_symbol_print (stderr
, yyrhs
[yyprhs
[yyrule
] + yyi
],
2182 &(yyvsp
[(yyi
+ 1) - (yynrhs
)])
2183 , &(yylsp
[(yyi
+ 1) - (yynrhs
)]) , state
);
2184 YYFPRINTF (stderr
, "\n");
2188 # define YY_REDUCE_PRINT(Rule) \
2191 yy_reduce_print (yyvsp, yylsp, Rule, state); \
2194 /* Nonzero means print parse trace. It is left uninitialized so that
2195 multiple parsers can coexist. */
2197 #else /* !YYDEBUG */
2198 # define YYDPRINTF(Args)
2199 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
2200 # define YY_STACK_PRINT(Bottom, Top)
2201 # define YY_REDUCE_PRINT(Rule)
2202 #endif /* !YYDEBUG */
2205 /* YYINITDEPTH -- initial size of the parser's stacks. */
2207 # define YYINITDEPTH 200
2210 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
2211 if the built-in stack extension method is used).
2213 Do not make this value too large; the results are undefined if
2214 YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
2215 evaluated with infinite-precision integer arithmetic. */
2218 # define YYMAXDEPTH 10000
2226 # if defined __GLIBC__ && defined _STRING_H
2227 # define yystrlen strlen
2229 /* Return the length of YYSTR. */
2230 #if (defined __STDC__ || defined __C99__FUNC__ \
2231 || defined __cplusplus || defined _MSC_VER)
2233 yystrlen (const char *yystr
)
2241 for (yylen
= 0; yystr
[yylen
]; yylen
++)
2249 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
2250 # define yystpcpy stpcpy
2252 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
2254 #if (defined __STDC__ || defined __C99__FUNC__ \
2255 || defined __cplusplus || defined _MSC_VER)
2257 yystpcpy (char *yydest
, const char *yysrc
)
2260 yystpcpy (yydest
, yysrc
)
2266 const char *yys
= yysrc
;
2268 while ((*yyd
++ = *yys
++) != '\0')
2277 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
2278 quotes and backslashes, so that it's suitable for yyerror. The
2279 heuristic is that double-quoting is unnecessary unless the string
2280 contains an apostrophe, a comma, or backslash (other than
2281 backslash-backslash). YYSTR is taken from yytname. If YYRES is
2282 null, do not copy; instead, return the length of what the result
2285 yytnamerr (char *yyres
, const char *yystr
)
2290 char const *yyp
= yystr
;
2297 goto do_not_strip_quotes
;
2301 goto do_not_strip_quotes
;
2314 do_not_strip_quotes
: ;
2318 return yystrlen (yystr
);
2320 return yystpcpy (yyres
, yystr
) - yyres
;
2324 /* Copy into YYRESULT an error message about the unexpected token
2325 YYCHAR while in state YYSTATE. Return the number of bytes copied,
2326 including the terminating null byte. If YYRESULT is null, do not
2327 copy anything; just return the number of bytes that would be
2328 copied. As a special case, return 0 if an ordinary "syntax error"
2329 message will do. Return YYSIZE_MAXIMUM if overflow occurs during
2330 size calculation. */
2332 yysyntax_error (char *yyresult
, int yystate
, int yychar
)
2334 int yyn
= yypact
[yystate
];
2336 if (! (YYPACT_NINF
< yyn
&& yyn
<= YYLAST
))
2340 int yytype
= YYTRANSLATE (yychar
);
2341 YYSIZE_T yysize0
= yytnamerr (0, yytname
[yytype
]);
2342 YYSIZE_T yysize
= yysize0
;
2344 int yysize_overflow
= 0;
2345 enum { YYERROR_VERBOSE_ARGS_MAXIMUM
= 5 };
2346 char const *yyarg
[YYERROR_VERBOSE_ARGS_MAXIMUM
];
2350 /* This is so xgettext sees the translatable formats that are
2351 constructed on the fly. */
2352 YY_("syntax error, unexpected %s");
2353 YY_("syntax error, unexpected %s, expecting %s");
2354 YY_("syntax error, unexpected %s, expecting %s or %s");
2355 YY_("syntax error, unexpected %s, expecting %s or %s or %s");
2356 YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
2360 static char const yyunexpected
[] = "syntax error, unexpected %s";
2361 static char const yyexpecting
[] = ", expecting %s";
2362 static char const yyor
[] = " or %s";
2363 char yyformat
[sizeof yyunexpected
2364 + sizeof yyexpecting
- 1
2365 + ((YYERROR_VERBOSE_ARGS_MAXIMUM
- 2)
2366 * (sizeof yyor
- 1))];
2367 char const *yyprefix
= yyexpecting
;
2369 /* Start YYX at -YYN if negative to avoid negative indexes in
2371 int yyxbegin
= yyn
< 0 ? -yyn
: 0;
2373 /* Stay within bounds of both yycheck and yytname. */
2374 int yychecklim
= YYLAST
- yyn
+ 1;
2375 int yyxend
= yychecklim
< YYNTOKENS
? yychecklim
: YYNTOKENS
;
2378 yyarg
[0] = yytname
[yytype
];
2379 yyfmt
= yystpcpy (yyformat
, yyunexpected
);
2381 for (yyx
= yyxbegin
; yyx
< yyxend
; ++yyx
)
2382 if (yycheck
[yyx
+ yyn
] == yyx
&& yyx
!= YYTERROR
)
2384 if (yycount
== YYERROR_VERBOSE_ARGS_MAXIMUM
)
2388 yyformat
[sizeof yyunexpected
- 1] = '\0';
2391 yyarg
[yycount
++] = yytname
[yyx
];
2392 yysize1
= yysize
+ yytnamerr (0, yytname
[yyx
]);
2393 yysize_overflow
|= (yysize1
< yysize
);
2395 yyfmt
= yystpcpy (yyfmt
, yyprefix
);
2399 yyf
= YY_(yyformat
);
2400 yysize1
= yysize
+ yystrlen (yyf
);
2401 yysize_overflow
|= (yysize1
< yysize
);
2404 if (yysize_overflow
)
2405 return YYSIZE_MAXIMUM
;
2409 /* Avoid sprintf, as that infringes on the user's name space.
2410 Don't have undefined behavior even if the translation
2411 produced a string with the wrong number of "%s"s. */
2412 char *yyp
= yyresult
;
2414 while ((*yyp
= *yyf
) != '\0')
2416 if (*yyp
== '%' && yyf
[1] == 's' && yyi
< yycount
)
2418 yyp
+= yytnamerr (yyp
, yyarg
[yyi
++]);
2431 #endif /* YYERROR_VERBOSE */
2434 /*-----------------------------------------------.
2435 | Release the memory associated to this symbol. |
2436 `-----------------------------------------------*/
2439 #if (defined __STDC__ || defined __C99__FUNC__ \
2440 || defined __cplusplus || defined _MSC_VER)
2442 yydestruct (const char *yymsg
, int yytype
, YYSTYPE
*yyvaluep
, YYLTYPE
*yylocationp
, struct _mesa_glsl_parse_state
*state
)
2445 yydestruct (yymsg
, yytype
, yyvaluep
, yylocationp
, state
)
2449 YYLTYPE
*yylocationp
;
2450 struct _mesa_glsl_parse_state
*state
;
2454 YYUSE (yylocationp
);
2459 YY_SYMBOL_PRINT (yymsg
, yytype
, yyvaluep
, yylocationp
);
2469 /* Prevent warnings from -Wmissing-prototypes. */
2470 #ifdef YYPARSE_PARAM
2471 #if defined __STDC__ || defined __cplusplus
2472 int yyparse (void *YYPARSE_PARAM
);
2476 #else /* ! YYPARSE_PARAM */
2477 #if defined __STDC__ || defined __cplusplus
2478 int yyparse (struct _mesa_glsl_parse_state
*state
);
2482 #endif /* ! YYPARSE_PARAM */
2488 /*-------------------------.
2489 | yyparse or yypush_parse. |
2490 `-------------------------*/
2492 #ifdef YYPARSE_PARAM
2493 #if (defined __STDC__ || defined __C99__FUNC__ \
2494 || defined __cplusplus || defined _MSC_VER)
2496 yyparse (void *YYPARSE_PARAM
)
2499 yyparse (YYPARSE_PARAM
)
2500 void *YYPARSE_PARAM
;
2502 #else /* ! YYPARSE_PARAM */
2503 #if (defined __STDC__ || defined __C99__FUNC__ \
2504 || defined __cplusplus || defined _MSC_VER)
2506 yyparse (struct _mesa_glsl_parse_state
*state
)
2510 struct _mesa_glsl_parse_state
*state
;
2514 /* The lookahead symbol. */
2517 /* The semantic value of the lookahead symbol. */
2520 /* Location data for the lookahead symbol. */
2523 /* Number of syntax errors so far. */
2527 /* Number of tokens to shift before error messages enabled. */
2530 /* The stacks and their tools:
2531 `yyss': related to states.
2532 `yyvs': related to semantic values.
2533 `yyls': related to locations.
2535 Refer to the stacks thru separate pointers, to allow yyoverflow
2536 to reallocate them elsewhere. */
2538 /* The state stack. */
2539 yytype_int16 yyssa
[YYINITDEPTH
];
2541 yytype_int16
*yyssp
;
2543 /* The semantic value stack. */
2544 YYSTYPE yyvsa
[YYINITDEPTH
];
2548 /* The location stack. */
2549 YYLTYPE yylsa
[YYINITDEPTH
];
2553 /* The locations where the error started and ended. */
2554 YYLTYPE yyerror_range
[2];
2556 YYSIZE_T yystacksize
;
2560 /* Lookahead token as an internal (translated) token number. */
2562 /* The variables used to return semantic value and location from the
2568 /* Buffer for error messages, and its allocated size. */
2570 char *yymsg
= yymsgbuf
;
2571 YYSIZE_T yymsg_alloc
= sizeof yymsgbuf
;
2574 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N), yylsp -= (N))
2576 /* The number of symbols on the RHS of the reduced rule.
2577 Keep to zero when no symbol should be popped. */
2584 yystacksize
= YYINITDEPTH
;
2586 YYDPRINTF ((stderr
, "Starting parse\n"));
2591 yychar
= YYEMPTY
; /* Cause a token to be read. */
2593 /* Initialize stack pointers.
2594 Waste one element of value and location stack
2595 so that they stay on the same level as the state stack.
2596 The wasted elements are never initialized. */
2601 #if YYLTYPE_IS_TRIVIAL
2602 /* Initialize the default location before parsing starts. */
2603 yylloc
.first_line
= yylloc
.last_line
= 1;
2604 yylloc
.first_column
= yylloc
.last_column
= 1;
2607 /* User initialization code. */
2609 /* Line 1242 of yacc.c */
2610 #line 41 "glsl_parser.ypp"
2612 yylloc
.first_line
= 1;
2613 yylloc
.first_column
= 1;
2614 yylloc
.last_line
= 1;
2615 yylloc
.last_column
= 1;
2619 /* Line 1242 of yacc.c */
2620 #line 2621 "glsl_parser.cpp"
2625 /*------------------------------------------------------------.
2626 | yynewstate -- Push a new state, which is found in yystate. |
2627 `------------------------------------------------------------*/
2629 /* In all cases, when you get here, the value and location stacks
2630 have just been pushed. So pushing a state here evens the stacks. */
2636 if (yyss
+ yystacksize
- 1 <= yyssp
)
2638 /* Get the current used size of the three stacks, in elements. */
2639 YYSIZE_T yysize
= yyssp
- yyss
+ 1;
2643 /* Give user a chance to reallocate the stack. Use copies of
2644 these so that the &'s don't force the real ones into
2646 YYSTYPE
*yyvs1
= yyvs
;
2647 yytype_int16
*yyss1
= yyss
;
2648 YYLTYPE
*yyls1
= yyls
;
2650 /* Each stack pointer address is followed by the size of the
2651 data in use in that stack, in bytes. This used to be a
2652 conditional around just the two extra args, but that might
2653 be undefined if yyoverflow is a macro. */
2654 yyoverflow (YY_("memory exhausted"),
2655 &yyss1
, yysize
* sizeof (*yyssp
),
2656 &yyvs1
, yysize
* sizeof (*yyvsp
),
2657 &yyls1
, yysize
* sizeof (*yylsp
),
2664 #else /* no yyoverflow */
2665 # ifndef YYSTACK_RELOCATE
2666 goto yyexhaustedlab
;
2668 /* Extend the stack our own way. */
2669 if (YYMAXDEPTH
<= yystacksize
)
2670 goto yyexhaustedlab
;
2672 if (YYMAXDEPTH
< yystacksize
)
2673 yystacksize
= YYMAXDEPTH
;
2676 yytype_int16
*yyss1
= yyss
;
2677 union yyalloc
*yyptr
=
2678 (union yyalloc
*) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize
));
2680 goto yyexhaustedlab
;
2681 YYSTACK_RELOCATE (yyss_alloc
, yyss
);
2682 YYSTACK_RELOCATE (yyvs_alloc
, yyvs
);
2683 YYSTACK_RELOCATE (yyls_alloc
, yyls
);
2684 # undef YYSTACK_RELOCATE
2686 YYSTACK_FREE (yyss1
);
2689 #endif /* no yyoverflow */
2691 yyssp
= yyss
+ yysize
- 1;
2692 yyvsp
= yyvs
+ yysize
- 1;
2693 yylsp
= yyls
+ yysize
- 1;
2695 YYDPRINTF ((stderr
, "Stack size increased to %lu\n",
2696 (unsigned long int) yystacksize
));
2698 if (yyss
+ yystacksize
- 1 <= yyssp
)
2702 YYDPRINTF ((stderr
, "Entering state %d\n", yystate
));
2704 if (yystate
== YYFINAL
)
2714 /* Do appropriate processing given the current state. Read a
2715 lookahead token if we need one and don't already have one. */
2717 /* First try to decide what to do without reference to lookahead token. */
2718 yyn
= yypact
[yystate
];
2719 if (yyn
== YYPACT_NINF
)
2722 /* Not known => get a lookahead token if don't already have one. */
2724 /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
2725 if (yychar
== YYEMPTY
)
2727 YYDPRINTF ((stderr
, "Reading a token: "));
2731 if (yychar
<= YYEOF
)
2733 yychar
= yytoken
= YYEOF
;
2734 YYDPRINTF ((stderr
, "Now at end of input.\n"));
2738 yytoken
= YYTRANSLATE (yychar
);
2739 YY_SYMBOL_PRINT ("Next token is", yytoken
, &yylval
, &yylloc
);
2742 /* If the proper action on seeing token YYTOKEN is to reduce or to
2743 detect an error, take that action. */
2745 if (yyn
< 0 || YYLAST
< yyn
|| yycheck
[yyn
] != yytoken
)
2750 if (yyn
== 0 || yyn
== YYTABLE_NINF
)
2756 /* Count tokens shifted since error; after three, turn off error
2761 /* Shift the lookahead token. */
2762 YY_SYMBOL_PRINT ("Shifting", yytoken
, &yylval
, &yylloc
);
2764 /* Discard the shifted token. */
2773 /*-----------------------------------------------------------.
2774 | yydefault -- do the default action for the current state. |
2775 `-----------------------------------------------------------*/
2777 yyn
= yydefact
[yystate
];
2783 /*-----------------------------.
2784 | yyreduce -- Do a reduction. |
2785 `-----------------------------*/
2787 /* yyn is the number of a rule to reduce with. */
2790 /* If YYLEN is nonzero, implement the default value of the action:
2793 Otherwise, the following line sets YYVAL to garbage.
2794 This behavior is undocumented and Bison
2795 users should not rely upon it. Assigning to YYVAL
2796 unconditionally makes the parser a bit smaller, and it avoids a
2797 GCC warning that YYVAL may be used uninitialized. */
2798 yyval
= yyvsp
[1-yylen
];
2800 /* Default location. */
2801 YYLLOC_DEFAULT (yyloc
, (yylsp
- yylen
), yylen
);
2802 YY_REDUCE_PRINT (yyn
);
2807 /* Line 1455 of yacc.c */
2808 #line 211 "glsl_parser.ypp"
2810 _mesa_glsl_initialize_types(state
);
2816 /* Line 1455 of yacc.c */
2817 #line 220 "glsl_parser.ypp"
2819 switch ((yyvsp
[(2) - (3)].n
)) {
2821 state
->es_shader
= true;
2825 /* FINISHME: Check against implementation support versions. */
2826 state
->language_version
= (yyvsp
[(2) - (3)].n
);
2829 _mesa_glsl_error(& (yylsp
[(2) - (3)]), state
, "Shading language version"
2830 "%u is not supported\n", (yyvsp
[(2) - (3)].n
));
2838 /* Line 1455 of yacc.c */
2839 #line 252 "glsl_parser.ypp"
2841 if (!_mesa_glsl_process_extension((yyvsp
[(2) - (5)].identifier
), & (yylsp
[(2) - (5)]), (yyvsp
[(4) - (5)].identifier
), & (yylsp
[(4) - (5)]), state
)) {
2849 /* Line 1455 of yacc.c */
2850 #line 261 "glsl_parser.ypp"
2852 /* FINISHME: The NULL test is only required because 'precision'
2853 * FINISHME: statements are not yet supported.
2855 if ((yyvsp
[(1) - (1)].node
) != NULL
)
2856 state
->translation_unit
.push_tail(& (yyvsp
[(1) - (1)].node
)->link
);
2862 /* Line 1455 of yacc.c */
2863 #line 269 "glsl_parser.ypp"
2865 /* FINISHME: The NULL test is only required because 'precision'
2866 * FINISHME: statements are not yet supported.
2868 if ((yyvsp
[(2) - (2)].node
) != NULL
)
2869 state
->translation_unit
.push_tail(& (yyvsp
[(2) - (2)].node
)->link
);
2875 /* Line 1455 of yacc.c */
2876 #line 284 "glsl_parser.ypp"
2879 (yyval
.expression
) = new(ctx
) ast_expression(ast_identifier
, NULL
, NULL
, NULL
);
2880 (yyval
.expression
)->set_location(yylloc
);
2881 (yyval
.expression
)->primary_expression
.identifier
= (yyvsp
[(1) - (1)].identifier
);
2887 /* Line 1455 of yacc.c */
2888 #line 291 "glsl_parser.ypp"
2891 (yyval
.expression
) = new(ctx
) ast_expression(ast_int_constant
, NULL
, NULL
, NULL
);
2892 (yyval
.expression
)->set_location(yylloc
);
2893 (yyval
.expression
)->primary_expression
.int_constant
= (yyvsp
[(1) - (1)].n
);
2899 /* Line 1455 of yacc.c */
2900 #line 298 "glsl_parser.ypp"
2903 (yyval
.expression
) = new(ctx
) ast_expression(ast_uint_constant
, NULL
, NULL
, NULL
);
2904 (yyval
.expression
)->set_location(yylloc
);
2905 (yyval
.expression
)->primary_expression
.uint_constant
= (yyvsp
[(1) - (1)].n
);
2911 /* Line 1455 of yacc.c */
2912 #line 305 "glsl_parser.ypp"
2915 (yyval
.expression
) = new(ctx
) ast_expression(ast_float_constant
, NULL
, NULL
, NULL
);
2916 (yyval
.expression
)->set_location(yylloc
);
2917 (yyval
.expression
)->primary_expression
.float_constant
= (yyvsp
[(1) - (1)].real
);
2923 /* Line 1455 of yacc.c */
2924 #line 312 "glsl_parser.ypp"
2927 (yyval
.expression
) = new(ctx
) ast_expression(ast_bool_constant
, NULL
, NULL
, NULL
);
2928 (yyval
.expression
)->set_location(yylloc
);
2929 (yyval
.expression
)->primary_expression
.bool_constant
= (yyvsp
[(1) - (1)].n
);
2935 /* Line 1455 of yacc.c */
2936 #line 319 "glsl_parser.ypp"
2938 (yyval
.expression
) = (yyvsp
[(2) - (3)].expression
);
2944 /* Line 1455 of yacc.c */
2945 #line 327 "glsl_parser.ypp"
2948 (yyval
.expression
) = new(ctx
) ast_expression(ast_array_index
, (yyvsp
[(1) - (4)].expression
), (yyvsp
[(3) - (4)].expression
), NULL
);
2949 (yyval
.expression
)->set_location(yylloc
);
2955 /* Line 1455 of yacc.c */
2956 #line 333 "glsl_parser.ypp"
2958 (yyval
.expression
) = (yyvsp
[(1) - (1)].expression
);
2964 /* Line 1455 of yacc.c */
2965 #line 337 "glsl_parser.ypp"
2968 (yyval
.expression
) = new(ctx
) ast_expression(ast_field_selection
, (yyvsp
[(1) - (3)].expression
), NULL
, NULL
);
2969 (yyval
.expression
)->set_location(yylloc
);
2970 (yyval
.expression
)->primary_expression
.identifier
= (yyvsp
[(3) - (3)].identifier
);
2976 /* Line 1455 of yacc.c */
2977 #line 344 "glsl_parser.ypp"
2980 (yyval
.expression
) = new(ctx
) ast_expression(ast_post_inc
, (yyvsp
[(1) - (2)].expression
), NULL
, NULL
);
2981 (yyval
.expression
)->set_location(yylloc
);
2987 /* Line 1455 of yacc.c */
2988 #line 350 "glsl_parser.ypp"
2991 (yyval
.expression
) = new(ctx
) ast_expression(ast_post_dec
, (yyvsp
[(1) - (2)].expression
), NULL
, NULL
);
2992 (yyval
.expression
)->set_location(yylloc
);
2998 /* Line 1455 of yacc.c */
2999 #line 368 "glsl_parser.ypp"
3002 (yyval
.expression
) = new(ctx
) ast_expression(ast_field_selection
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
), NULL
);
3003 (yyval
.expression
)->set_location(yylloc
);
3009 /* Line 1455 of yacc.c */
3010 #line 387 "glsl_parser.ypp"
3012 (yyval
.expression
) = (yyvsp
[(1) - (2)].expression
);
3013 (yyval
.expression
)->set_location(yylloc
);
3014 (yyval
.expression
)->expressions
.push_tail(& (yyvsp
[(2) - (2)].expression
)->link
);
3020 /* Line 1455 of yacc.c */
3021 #line 393 "glsl_parser.ypp"
3023 (yyval
.expression
) = (yyvsp
[(1) - (3)].expression
);
3024 (yyval
.expression
)->set_location(yylloc
);
3025 (yyval
.expression
)->expressions
.push_tail(& (yyvsp
[(3) - (3)].expression
)->link
);
3031 /* Line 1455 of yacc.c */
3032 #line 409 "glsl_parser.ypp"
3035 (yyval
.expression
) = new(ctx
) ast_function_expression((yyvsp
[(1) - (1)].type_specifier
));
3036 (yyval
.expression
)->set_location(yylloc
);
3042 /* Line 1455 of yacc.c */
3043 #line 415 "glsl_parser.ypp"
3046 ast_expression
*callee
= new(ctx
) ast_expression((yyvsp
[(1) - (1)].identifier
));
3047 (yyval
.expression
) = new(ctx
) ast_function_expression(callee
);
3048 (yyval
.expression
)->set_location(yylloc
);
3054 /* Line 1455 of yacc.c */
3055 #line 422 "glsl_parser.ypp"
3058 ast_expression
*callee
= new(ctx
) ast_expression((yyvsp
[(1) - (1)].identifier
));
3059 (yyval
.expression
) = new(ctx
) ast_function_expression(callee
);
3060 (yyval
.expression
)->set_location(yylloc
);
3066 /* Line 1455 of yacc.c */
3067 #line 434 "glsl_parser.ypp"
3070 (yyval
.expression
) = new(ctx
) ast_expression(ast_pre_inc
, (yyvsp
[(2) - (2)].expression
), NULL
, NULL
);
3071 (yyval
.expression
)->set_location(yylloc
);
3077 /* Line 1455 of yacc.c */
3078 #line 440 "glsl_parser.ypp"
3081 (yyval
.expression
) = new(ctx
) ast_expression(ast_pre_dec
, (yyvsp
[(2) - (2)].expression
), NULL
, NULL
);
3082 (yyval
.expression
)->set_location(yylloc
);
3088 /* Line 1455 of yacc.c */
3089 #line 446 "glsl_parser.ypp"
3092 (yyval
.expression
) = new(ctx
) ast_expression((yyvsp
[(1) - (2)].n
), (yyvsp
[(2) - (2)].expression
), NULL
, NULL
);
3093 (yyval
.expression
)->set_location(yylloc
);
3099 /* Line 1455 of yacc.c */
3100 #line 455 "glsl_parser.ypp"
3101 { (yyval
.n
) = ast_plus
; ;}
3106 /* Line 1455 of yacc.c */
3107 #line 456 "glsl_parser.ypp"
3108 { (yyval
.n
) = ast_neg
; ;}
3113 /* Line 1455 of yacc.c */
3114 #line 457 "glsl_parser.ypp"
3115 { (yyval
.n
) = ast_logic_not
; ;}
3120 /* Line 1455 of yacc.c */
3121 #line 458 "glsl_parser.ypp"
3122 { (yyval
.n
) = ast_bit_not
; ;}
3127 /* Line 1455 of yacc.c */
3128 #line 464 "glsl_parser.ypp"
3131 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_mul
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3132 (yyval
.expression
)->set_location(yylloc
);
3138 /* Line 1455 of yacc.c */
3139 #line 470 "glsl_parser.ypp"
3142 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_div
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3143 (yyval
.expression
)->set_location(yylloc
);
3149 /* Line 1455 of yacc.c */
3150 #line 476 "glsl_parser.ypp"
3153 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_mod
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3154 (yyval
.expression
)->set_location(yylloc
);
3160 /* Line 1455 of yacc.c */
3161 #line 486 "glsl_parser.ypp"
3164 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_add
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3165 (yyval
.expression
)->set_location(yylloc
);
3171 /* Line 1455 of yacc.c */
3172 #line 492 "glsl_parser.ypp"
3175 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_sub
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3176 (yyval
.expression
)->set_location(yylloc
);
3182 /* Line 1455 of yacc.c */
3183 #line 502 "glsl_parser.ypp"
3186 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_lshift
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3187 (yyval
.expression
)->set_location(yylloc
);
3193 /* Line 1455 of yacc.c */
3194 #line 508 "glsl_parser.ypp"
3197 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_rshift
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3198 (yyval
.expression
)->set_location(yylloc
);
3204 /* Line 1455 of yacc.c */
3205 #line 518 "glsl_parser.ypp"
3208 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_less
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3209 (yyval
.expression
)->set_location(yylloc
);
3215 /* Line 1455 of yacc.c */
3216 #line 524 "glsl_parser.ypp"
3219 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_greater
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3220 (yyval
.expression
)->set_location(yylloc
);
3226 /* Line 1455 of yacc.c */
3227 #line 530 "glsl_parser.ypp"
3230 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_lequal
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3231 (yyval
.expression
)->set_location(yylloc
);
3237 /* Line 1455 of yacc.c */
3238 #line 536 "glsl_parser.ypp"
3241 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_gequal
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3242 (yyval
.expression
)->set_location(yylloc
);
3248 /* Line 1455 of yacc.c */
3249 #line 546 "glsl_parser.ypp"
3252 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_equal
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3253 (yyval
.expression
)->set_location(yylloc
);
3259 /* Line 1455 of yacc.c */
3260 #line 552 "glsl_parser.ypp"
3263 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_nequal
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3264 (yyval
.expression
)->set_location(yylloc
);
3270 /* Line 1455 of yacc.c */
3271 #line 562 "glsl_parser.ypp"
3274 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_bit_or
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3275 (yyval
.expression
)->set_location(yylloc
);
3281 /* Line 1455 of yacc.c */
3282 #line 572 "glsl_parser.ypp"
3285 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_bit_xor
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3286 (yyval
.expression
)->set_location(yylloc
);
3292 /* Line 1455 of yacc.c */
3293 #line 582 "glsl_parser.ypp"
3296 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_bit_or
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3297 (yyval
.expression
)->set_location(yylloc
);
3303 /* Line 1455 of yacc.c */
3304 #line 592 "glsl_parser.ypp"
3307 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_logic_and
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3308 (yyval
.expression
)->set_location(yylloc
);
3314 /* Line 1455 of yacc.c */
3315 #line 602 "glsl_parser.ypp"
3318 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_logic_xor
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3319 (yyval
.expression
)->set_location(yylloc
);
3325 /* Line 1455 of yacc.c */
3326 #line 612 "glsl_parser.ypp"
3329 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_logic_or
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3330 (yyval
.expression
)->set_location(yylloc
);
3336 /* Line 1455 of yacc.c */
3337 #line 622 "glsl_parser.ypp"
3340 (yyval
.expression
) = new(ctx
) ast_expression(ast_conditional
, (yyvsp
[(1) - (5)].expression
), (yyvsp
[(3) - (5)].expression
), (yyvsp
[(5) - (5)].expression
));
3341 (yyval
.expression
)->set_location(yylloc
);
3347 /* Line 1455 of yacc.c */
3348 #line 632 "glsl_parser.ypp"
3351 (yyval
.expression
) = new(ctx
) ast_expression((yyvsp
[(2) - (3)].n
), (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
), NULL
);
3352 (yyval
.expression
)->set_location(yylloc
);
3358 /* Line 1455 of yacc.c */
3359 #line 640 "glsl_parser.ypp"
3360 { (yyval
.n
) = ast_assign
; ;}
3365 /* Line 1455 of yacc.c */
3366 #line 641 "glsl_parser.ypp"
3367 { (yyval
.n
) = ast_mul_assign
; ;}
3372 /* Line 1455 of yacc.c */
3373 #line 642 "glsl_parser.ypp"
3374 { (yyval
.n
) = ast_div_assign
; ;}
3379 /* Line 1455 of yacc.c */
3380 #line 643 "glsl_parser.ypp"
3381 { (yyval
.n
) = ast_mod_assign
; ;}
3386 /* Line 1455 of yacc.c */
3387 #line 644 "glsl_parser.ypp"
3388 { (yyval
.n
) = ast_add_assign
; ;}
3393 /* Line 1455 of yacc.c */
3394 #line 645 "glsl_parser.ypp"
3395 { (yyval
.n
) = ast_sub_assign
; ;}
3400 /* Line 1455 of yacc.c */
3401 #line 646 "glsl_parser.ypp"
3402 { (yyval
.n
) = ast_ls_assign
; ;}
3407 /* Line 1455 of yacc.c */
3408 #line 647 "glsl_parser.ypp"
3409 { (yyval
.n
) = ast_rs_assign
; ;}
3414 /* Line 1455 of yacc.c */
3415 #line 648 "glsl_parser.ypp"
3416 { (yyval
.n
) = ast_and_assign
; ;}
3421 /* Line 1455 of yacc.c */
3422 #line 649 "glsl_parser.ypp"
3423 { (yyval
.n
) = ast_xor_assign
; ;}
3428 /* Line 1455 of yacc.c */
3429 #line 650 "glsl_parser.ypp"
3430 { (yyval
.n
) = ast_or_assign
; ;}
3435 /* Line 1455 of yacc.c */
3436 #line 655 "glsl_parser.ypp"
3438 (yyval
.expression
) = (yyvsp
[(1) - (1)].expression
);
3444 /* Line 1455 of yacc.c */
3445 #line 659 "glsl_parser.ypp"
3448 if ((yyvsp
[(1) - (3)].expression
)->oper
!= ast_sequence
) {
3449 (yyval
.expression
) = new(ctx
) ast_expression(ast_sequence
, NULL
, NULL
, NULL
);
3450 (yyval
.expression
)->set_location(yylloc
);
3451 (yyval
.expression
)->expressions
.push_tail(& (yyvsp
[(1) - (3)].expression
)->link
);
3453 (yyval
.expression
) = (yyvsp
[(1) - (3)].expression
);
3456 (yyval
.expression
)->expressions
.push_tail(& (yyvsp
[(3) - (3)].expression
)->link
);
3462 /* Line 1455 of yacc.c */
3463 #line 679 "glsl_parser.ypp"
3465 (yyval
.node
) = (yyvsp
[(1) - (2)].function
);
3471 /* Line 1455 of yacc.c */
3472 #line 683 "glsl_parser.ypp"
3474 (yyval
.node
) = (yyvsp
[(1) - (2)].declarator_list
);
3480 /* Line 1455 of yacc.c */
3481 #line 687 "glsl_parser.ypp"
3483 if (((yyvsp
[(3) - (4)].type_specifier
)->type_specifier
!= ast_float
)
3484 && ((yyvsp
[(3) - (4)].type_specifier
)->type_specifier
!= ast_int
)) {
3485 _mesa_glsl_error(& (yylsp
[(3) - (4)]), state
, "global precision qualifier can "
3486 "only be applied to `int' or `float'\n");
3490 (yyval
.node
) = NULL
; /* FINISHME */
3496 /* Line 1455 of yacc.c */
3497 #line 710 "glsl_parser.ypp"
3499 (yyval
.function
) = (yyvsp
[(1) - (2)].function
);
3500 (yyval
.function
)->parameters
.push_tail(& (yyvsp
[(2) - (2)].parameter_declarator
)->link
);
3506 /* Line 1455 of yacc.c */
3507 #line 715 "glsl_parser.ypp"
3509 (yyval
.function
) = (yyvsp
[(1) - (3)].function
);
3510 (yyval
.function
)->parameters
.push_tail(& (yyvsp
[(3) - (3)].parameter_declarator
)->link
);
3516 /* Line 1455 of yacc.c */
3517 #line 723 "glsl_parser.ypp"
3520 (yyval
.function
) = new(ctx
) ast_function();
3521 (yyval
.function
)->set_location(yylloc
);
3522 (yyval
.function
)->return_type
= (yyvsp
[(1) - (3)].fully_specified_type
);
3523 (yyval
.function
)->identifier
= (yyvsp
[(2) - (3)].identifier
);
3529 /* Line 1455 of yacc.c */
3530 #line 734 "glsl_parser.ypp"
3533 (yyval
.parameter_declarator
) = new(ctx
) ast_parameter_declarator();
3534 (yyval
.parameter_declarator
)->set_location(yylloc
);
3535 (yyval
.parameter_declarator
)->type
= new(ctx
) ast_fully_specified_type();
3536 (yyval
.parameter_declarator
)->type
->set_location(yylloc
);
3537 (yyval
.parameter_declarator
)->type
->specifier
= (yyvsp
[(1) - (2)].type_specifier
);
3538 (yyval
.parameter_declarator
)->identifier
= (yyvsp
[(2) - (2)].identifier
);
3544 /* Line 1455 of yacc.c */
3545 #line 744 "glsl_parser.ypp"
3548 (yyval
.parameter_declarator
) = new(ctx
) ast_parameter_declarator();
3549 (yyval
.parameter_declarator
)->set_location(yylloc
);
3550 (yyval
.parameter_declarator
)->type
= new(ctx
) ast_fully_specified_type();
3551 (yyval
.parameter_declarator
)->type
->set_location(yylloc
);
3552 (yyval
.parameter_declarator
)->type
->specifier
= (yyvsp
[(1) - (5)].type_specifier
);
3553 (yyval
.parameter_declarator
)->identifier
= (yyvsp
[(2) - (5)].identifier
);
3554 (yyval
.parameter_declarator
)->is_array
= true;
3555 (yyval
.parameter_declarator
)->array_size
= (yyvsp
[(4) - (5)].expression
);
3561 /* Line 1455 of yacc.c */
3562 #line 759 "glsl_parser.ypp"
3564 (yyvsp
[(1) - (3)].type_qualifier
).flags
.i
|= (yyvsp
[(2) - (3)].type_qualifier
).flags
.i
;
3566 (yyval
.parameter_declarator
) = (yyvsp
[(3) - (3)].parameter_declarator
);
3567 (yyval
.parameter_declarator
)->type
->qualifier
= (yyvsp
[(1) - (3)].type_qualifier
);
3573 /* Line 1455 of yacc.c */
3574 #line 766 "glsl_parser.ypp"
3576 (yyval
.parameter_declarator
) = (yyvsp
[(2) - (2)].parameter_declarator
);
3577 (yyval
.parameter_declarator
)->type
->qualifier
= (yyvsp
[(1) - (2)].type_qualifier
);
3583 /* Line 1455 of yacc.c */
3584 #line 771 "glsl_parser.ypp"
3587 (yyvsp
[(1) - (3)].type_qualifier
).flags
.i
|= (yyvsp
[(2) - (3)].type_qualifier
).flags
.i
;
3589 (yyval
.parameter_declarator
) = new(ctx
) ast_parameter_declarator();
3590 (yyval
.parameter_declarator
)->set_location(yylloc
);
3591 (yyval
.parameter_declarator
)->type
= new(ctx
) ast_fully_specified_type();
3592 (yyval
.parameter_declarator
)->type
->qualifier
= (yyvsp
[(1) - (3)].type_qualifier
);
3593 (yyval
.parameter_declarator
)->type
->specifier
= (yyvsp
[(3) - (3)].type_specifier
);
3599 /* Line 1455 of yacc.c */
3600 #line 782 "glsl_parser.ypp"
3603 (yyval
.parameter_declarator
) = new(ctx
) ast_parameter_declarator();
3604 (yyval
.parameter_declarator
)->set_location(yylloc
);
3605 (yyval
.parameter_declarator
)->type
= new(ctx
) ast_fully_specified_type();
3606 (yyval
.parameter_declarator
)->type
->qualifier
= (yyvsp
[(1) - (2)].type_qualifier
);
3607 (yyval
.parameter_declarator
)->type
->specifier
= (yyvsp
[(2) - (2)].type_specifier
);
3613 /* Line 1455 of yacc.c */
3614 #line 794 "glsl_parser.ypp"
3616 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
3622 /* Line 1455 of yacc.c */
3623 #line 798 "glsl_parser.ypp"
3625 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
3626 (yyval
.type_qualifier
).flags
.q
.in
= 1;
3632 /* Line 1455 of yacc.c */
3633 #line 803 "glsl_parser.ypp"
3635 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
3636 (yyval
.type_qualifier
).flags
.q
.out
= 1;
3642 /* Line 1455 of yacc.c */
3643 #line 808 "glsl_parser.ypp"
3645 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
3646 (yyval
.type_qualifier
).flags
.q
.in
= 1;
3647 (yyval
.type_qualifier
).flags
.q
.out
= 1;
3653 /* Line 1455 of yacc.c */
3654 #line 822 "glsl_parser.ypp"
3657 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(3) - (3)].identifier
), false, NULL
, NULL
);
3658 decl
->set_location(yylloc
);
3660 (yyval
.declarator_list
) = (yyvsp
[(1) - (3)].declarator_list
);
3661 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3667 /* Line 1455 of yacc.c */
3668 #line 831 "glsl_parser.ypp"
3671 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(3) - (5)].identifier
), true, NULL
, NULL
);
3672 decl
->set_location(yylloc
);
3674 (yyval
.declarator_list
) = (yyvsp
[(1) - (5)].declarator_list
);
3675 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3681 /* Line 1455 of yacc.c */
3682 #line 840 "glsl_parser.ypp"
3685 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(3) - (6)].identifier
), true, (yyvsp
[(5) - (6)].expression
), NULL
);
3686 decl
->set_location(yylloc
);
3688 (yyval
.declarator_list
) = (yyvsp
[(1) - (6)].declarator_list
);
3689 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3695 /* Line 1455 of yacc.c */
3696 #line 849 "glsl_parser.ypp"
3699 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(3) - (7)].identifier
), true, NULL
, (yyvsp
[(7) - (7)].expression
));
3700 decl
->set_location(yylloc
);
3702 (yyval
.declarator_list
) = (yyvsp
[(1) - (7)].declarator_list
);
3703 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3709 /* Line 1455 of yacc.c */
3710 #line 858 "glsl_parser.ypp"
3713 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(3) - (8)].identifier
), true, (yyvsp
[(5) - (8)].expression
), (yyvsp
[(8) - (8)].expression
));
3714 decl
->set_location(yylloc
);
3716 (yyval
.declarator_list
) = (yyvsp
[(1) - (8)].declarator_list
);
3717 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3723 /* Line 1455 of yacc.c */
3724 #line 867 "glsl_parser.ypp"
3727 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(3) - (5)].identifier
), false, NULL
, (yyvsp
[(5) - (5)].expression
));
3728 decl
->set_location(yylloc
);
3730 (yyval
.declarator_list
) = (yyvsp
[(1) - (5)].declarator_list
);
3731 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3737 /* Line 1455 of yacc.c */
3738 #line 880 "glsl_parser.ypp"
3741 if ((yyvsp
[(1) - (1)].fully_specified_type
)->specifier
->type_specifier
!= ast_struct
) {
3742 _mesa_glsl_error(& (yylsp
[(1) - (1)]), state
, "empty declaration list\n");
3745 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list((yyvsp
[(1) - (1)].fully_specified_type
));
3746 (yyval
.declarator_list
)->set_location(yylloc
);
3753 /* Line 1455 of yacc.c */
3754 #line 891 "glsl_parser.ypp"
3757 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(2) - (2)].identifier
), false, NULL
, NULL
);
3759 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list((yyvsp
[(1) - (2)].fully_specified_type
));
3760 (yyval
.declarator_list
)->set_location(yylloc
);
3761 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3767 /* Line 1455 of yacc.c */
3768 #line 900 "glsl_parser.ypp"
3771 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(2) - (4)].identifier
), true, NULL
, NULL
);
3773 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list((yyvsp
[(1) - (4)].fully_specified_type
));
3774 (yyval
.declarator_list
)->set_location(yylloc
);
3775 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3781 /* Line 1455 of yacc.c */
3782 #line 909 "glsl_parser.ypp"
3785 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(2) - (5)].identifier
), true, (yyvsp
[(4) - (5)].expression
), NULL
);
3787 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list((yyvsp
[(1) - (5)].fully_specified_type
));
3788 (yyval
.declarator_list
)->set_location(yylloc
);
3789 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3795 /* Line 1455 of yacc.c */
3796 #line 918 "glsl_parser.ypp"
3799 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(2) - (6)].identifier
), true, NULL
, (yyvsp
[(6) - (6)].expression
));
3801 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list((yyvsp
[(1) - (6)].fully_specified_type
));
3802 (yyval
.declarator_list
)->set_location(yylloc
);
3803 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3809 /* Line 1455 of yacc.c */
3810 #line 927 "glsl_parser.ypp"
3813 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(2) - (7)].identifier
), true, (yyvsp
[(4) - (7)].expression
), (yyvsp
[(7) - (7)].expression
));
3815 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list((yyvsp
[(1) - (7)].fully_specified_type
));
3816 (yyval
.declarator_list
)->set_location(yylloc
);
3817 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3823 /* Line 1455 of yacc.c */
3824 #line 936 "glsl_parser.ypp"
3827 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(2) - (4)].identifier
), false, NULL
, (yyvsp
[(4) - (4)].expression
));
3829 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list((yyvsp
[(1) - (4)].fully_specified_type
));
3830 (yyval
.declarator_list
)->set_location(yylloc
);
3831 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3837 /* Line 1455 of yacc.c */
3838 #line 945 "glsl_parser.ypp"
3841 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(2) - (2)].identifier
), false, NULL
, NULL
);
3843 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list(NULL
);
3844 (yyval
.declarator_list
)->set_location(yylloc
);
3845 (yyval
.declarator_list
)->invariant
= true;
3847 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3853 /* Line 1455 of yacc.c */
3854 #line 959 "glsl_parser.ypp"
3857 (yyval
.fully_specified_type
) = new(ctx
) ast_fully_specified_type();
3858 (yyval
.fully_specified_type
)->set_location(yylloc
);
3859 (yyval
.fully_specified_type
)->specifier
= (yyvsp
[(1) - (1)].type_specifier
);
3865 /* Line 1455 of yacc.c */
3866 #line 966 "glsl_parser.ypp"
3869 (yyval
.fully_specified_type
) = new(ctx
) ast_fully_specified_type();
3870 (yyval
.fully_specified_type
)->set_location(yylloc
);
3871 (yyval
.fully_specified_type
)->qualifier
= (yyvsp
[(1) - (2)].type_qualifier
);
3872 (yyval
.fully_specified_type
)->specifier
= (yyvsp
[(2) - (2)].type_specifier
);
3878 /* Line 1455 of yacc.c */
3879 #line 977 "glsl_parser.ypp"
3881 (yyval
.type_qualifier
) = (yyvsp
[(3) - (4)].type_qualifier
);
3887 /* Line 1455 of yacc.c */
3888 #line 985 "glsl_parser.ypp"
3890 if (((yyvsp
[(1) - (3)].type_qualifier
).flags
.i
& (yyvsp
[(3) - (3)].type_qualifier
).flags
.i
) != 0) {
3891 _mesa_glsl_error(& (yylsp
[(3) - (3)]), state
,
3892 "duplicate layout qualifiers used\n");
3896 (yyval
.type_qualifier
).flags
.i
= (yyvsp
[(1) - (3)].type_qualifier
).flags
.i
| (yyvsp
[(3) - (3)].type_qualifier
).flags
.i
;
3898 if ((yyvsp
[(1) - (3)].type_qualifier
).flags
.q
.explicit_location
)
3899 (yyval
.type_qualifier
).location
= (yyvsp
[(1) - (3)].type_qualifier
).location
;
3901 if ((yyvsp
[(3) - (3)].type_qualifier
).flags
.q
.explicit_location
)
3902 (yyval
.type_qualifier
).location
= (yyvsp
[(3) - (3)].type_qualifier
).location
;
3908 /* Line 1455 of yacc.c */
3909 #line 1004 "glsl_parser.ypp"
3911 bool got_one
= false;
3913 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
3915 if (state
->ARB_fragment_coord_conventions_enable
) {
3916 if (strcmp((yyvsp
[(1) - (1)].identifier
), "origin_upper_left") == 0) {
3918 (yyval
.type_qualifier
).flags
.q
.origin_upper_left
= 1;
3919 } else if (strcmp((yyvsp
[(1) - (1)].identifier
), "pixel_center_integer") == 0) {
3921 (yyval
.type_qualifier
).flags
.q
.pixel_center_integer
= 1;
3925 /* If the identifier didn't match any known layout identifiers,
3929 _mesa_glsl_error(& (yylsp
[(1) - (1)]), state
, "unrecognized layout identifier "
3930 "`%s'\n", (yyvsp
[(1) - (1)].identifier
));
3932 } else if (state
->ARB_fragment_coord_conventions_warn
) {
3933 _mesa_glsl_warning(& (yylsp
[(1) - (1)]), state
,
3934 "GL_ARB_fragment_coord_conventions layout "
3935 "identifier `%s' used\n", (yyvsp
[(1) - (1)].identifier
));
3942 /* Line 1455 of yacc.c */
3943 #line 1033 "glsl_parser.ypp"
3945 bool got_one
= false;
3947 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
3949 if (state
->ARB_explicit_attrib_location_enable
) {
3950 /* FINISHME: Handle 'index' once GL_ARB_blend_func_exteneded and
3951 * FINISHME: GLSL 1.30 (or later) are supported.
3953 if (strcmp("location", (yyvsp
[(1) - (3)].identifier
)) == 0) {
3956 (yyval
.type_qualifier
).flags
.q
.explicit_location
= 1;
3958 if ((yyvsp
[(3) - (3)].n
) >= 0) {
3959 (yyval
.type_qualifier
).location
= (yyvsp
[(3) - (3)].n
);
3961 _mesa_glsl_error(& (yylsp
[(3) - (3)]), state
,
3962 "invalid location %d specified\n", (yyvsp
[(3) - (3)].n
));
3968 /* If the identifier didn't match any known layout identifiers,
3972 _mesa_glsl_error(& (yylsp
[(1) - (3)]), state
, "unrecognized layout identifier "
3973 "`%s'\n", (yyvsp
[(1) - (3)].identifier
));
3975 } else if (state
->ARB_explicit_attrib_location_warn
) {
3976 _mesa_glsl_warning(& (yylsp
[(1) - (3)]), state
,
3977 "GL_ARB_explicit_attrib_location layout "
3978 "identifier `%s' used\n", (yyvsp
[(1) - (3)].identifier
));
3985 /* Line 1455 of yacc.c */
3986 #line 1074 "glsl_parser.ypp"
3988 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
3989 (yyval
.type_qualifier
).flags
.q
.smooth
= 1;
3995 /* Line 1455 of yacc.c */
3996 #line 1079 "glsl_parser.ypp"
3998 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
3999 (yyval
.type_qualifier
).flags
.q
.flat
= 1;
4005 /* Line 1455 of yacc.c */
4006 #line 1084 "glsl_parser.ypp"
4008 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
4009 (yyval
.type_qualifier
).flags
.q
.noperspective
= 1;
4015 /* Line 1455 of yacc.c */
4016 #line 1092 "glsl_parser.ypp"
4018 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
4019 (yyval
.type_qualifier
).flags
.q
.constant
= 1;
4025 /* Line 1455 of yacc.c */
4026 #line 1102 "glsl_parser.ypp"
4028 (yyval
.type_qualifier
) = (yyvsp
[(1) - (2)].type_qualifier
);
4029 (yyval
.type_qualifier
).flags
.i
|= (yyvsp
[(2) - (2)].type_qualifier
).flags
.i
;
4035 /* Line 1455 of yacc.c */
4036 #line 1108 "glsl_parser.ypp"
4038 (yyval
.type_qualifier
) = (yyvsp
[(1) - (2)].type_qualifier
);
4039 (yyval
.type_qualifier
).flags
.i
|= (yyvsp
[(2) - (2)].type_qualifier
).flags
.i
;
4045 /* Line 1455 of yacc.c */
4046 #line 1113 "glsl_parser.ypp"
4048 (yyval
.type_qualifier
) = (yyvsp
[(2) - (2)].type_qualifier
);
4049 (yyval
.type_qualifier
).flags
.q
.invariant
= 1;
4055 /* Line 1455 of yacc.c */
4056 #line 1118 "glsl_parser.ypp"
4058 (yyval
.type_qualifier
) = (yyvsp
[(2) - (3)].type_qualifier
);
4059 (yyval
.type_qualifier
).flags
.i
|= (yyvsp
[(3) - (3)].type_qualifier
).flags
.i
;
4060 (yyval
.type_qualifier
).flags
.q
.invariant
= 1;
4066 /* Line 1455 of yacc.c */
4067 #line 1124 "glsl_parser.ypp"
4069 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
4070 (yyval
.type_qualifier
).flags
.q
.invariant
= 1;
4076 /* Line 1455 of yacc.c */
4077 #line 1132 "glsl_parser.ypp"
4079 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
4080 (yyval
.type_qualifier
).flags
.q
.constant
= 1;
4086 /* Line 1455 of yacc.c */
4087 #line 1137 "glsl_parser.ypp"
4089 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
4090 (yyval
.type_qualifier
).flags
.q
.attribute
= 1;
4096 /* Line 1455 of yacc.c */
4097 #line 1142 "glsl_parser.ypp"
4099 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
4100 (yyval
.type_qualifier
).flags
.q
.varying
= 1;
4106 /* Line 1455 of yacc.c */
4107 #line 1147 "glsl_parser.ypp"
4109 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
4110 (yyval
.type_qualifier
).flags
.q
.centroid
= 1;
4111 (yyval
.type_qualifier
).flags
.q
.varying
= 1;
4117 /* Line 1455 of yacc.c */
4118 #line 1153 "glsl_parser.ypp"
4120 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
4121 (yyval
.type_qualifier
).flags
.q
.in
= 1;
4127 /* Line 1455 of yacc.c */
4128 #line 1158 "glsl_parser.ypp"
4130 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
4131 (yyval
.type_qualifier
).flags
.q
.out
= 1;
4137 /* Line 1455 of yacc.c */
4138 #line 1163 "glsl_parser.ypp"
4140 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
4141 (yyval
.type_qualifier
).flags
.q
.centroid
= 1; (yyval
.type_qualifier
).flags
.q
.in
= 1;
4147 /* Line 1455 of yacc.c */
4148 #line 1168 "glsl_parser.ypp"
4150 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
4151 (yyval
.type_qualifier
).flags
.q
.centroid
= 1; (yyval
.type_qualifier
).flags
.q
.out
= 1;
4157 /* Line 1455 of yacc.c */
4158 #line 1173 "glsl_parser.ypp"
4160 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
4161 (yyval
.type_qualifier
).flags
.q
.uniform
= 1;
4167 /* Line 1455 of yacc.c */
4168 #line 1182 "glsl_parser.ypp"
4170 (yyval
.type_specifier
) = (yyvsp
[(2) - (2)].type_specifier
);
4171 (yyval
.type_specifier
)->precision
= (yyvsp
[(1) - (2)].n
);
4177 /* Line 1455 of yacc.c */
4178 #line 1191 "glsl_parser.ypp"
4180 (yyval
.type_specifier
) = (yyvsp
[(1) - (3)].type_specifier
);
4181 (yyval
.type_specifier
)->is_array
= true;
4182 (yyval
.type_specifier
)->array_size
= NULL
;
4188 /* Line 1455 of yacc.c */
4189 #line 1197 "glsl_parser.ypp"
4191 (yyval
.type_specifier
) = (yyvsp
[(1) - (4)].type_specifier
);
4192 (yyval
.type_specifier
)->is_array
= true;
4193 (yyval
.type_specifier
)->array_size
= (yyvsp
[(3) - (4)].expression
);
4199 /* Line 1455 of yacc.c */
4200 #line 1206 "glsl_parser.ypp"
4203 (yyval
.type_specifier
) = new(ctx
) ast_type_specifier((yyvsp
[(1) - (1)].n
));
4204 (yyval
.type_specifier
)->set_location(yylloc
);
4210 /* Line 1455 of yacc.c */
4211 #line 1212 "glsl_parser.ypp"
4214 (yyval
.type_specifier
) = new(ctx
) ast_type_specifier((yyvsp
[(1) - (1)].struct_specifier
));
4215 (yyval
.type_specifier
)->set_location(yylloc
);
4221 /* Line 1455 of yacc.c */
4222 #line 1218 "glsl_parser.ypp"
4225 (yyval
.type_specifier
) = new(ctx
) ast_type_specifier((yyvsp
[(1) - (1)].identifier
));
4226 (yyval
.type_specifier
)->set_location(yylloc
);
4232 /* Line 1455 of yacc.c */
4233 #line 1226 "glsl_parser.ypp"
4234 { (yyval
.n
) = ast_void
; ;}
4239 /* Line 1455 of yacc.c */
4240 #line 1227 "glsl_parser.ypp"
4241 { (yyval
.n
) = ast_float
; ;}
4246 /* Line 1455 of yacc.c */
4247 #line 1228 "glsl_parser.ypp"
4248 { (yyval
.n
) = ast_int
; ;}
4253 /* Line 1455 of yacc.c */
4254 #line 1229 "glsl_parser.ypp"
4255 { (yyval
.n
) = ast_uint
; ;}
4260 /* Line 1455 of yacc.c */
4261 #line 1230 "glsl_parser.ypp"
4262 { (yyval
.n
) = ast_bool
; ;}
4267 /* Line 1455 of yacc.c */
4268 #line 1231 "glsl_parser.ypp"
4269 { (yyval
.n
) = ast_vec2
; ;}
4274 /* Line 1455 of yacc.c */
4275 #line 1232 "glsl_parser.ypp"
4276 { (yyval
.n
) = ast_vec3
; ;}
4281 /* Line 1455 of yacc.c */
4282 #line 1233 "glsl_parser.ypp"
4283 { (yyval
.n
) = ast_vec4
; ;}
4288 /* Line 1455 of yacc.c */
4289 #line 1234 "glsl_parser.ypp"
4290 { (yyval
.n
) = ast_bvec2
; ;}
4295 /* Line 1455 of yacc.c */
4296 #line 1235 "glsl_parser.ypp"
4297 { (yyval
.n
) = ast_bvec3
; ;}
4302 /* Line 1455 of yacc.c */
4303 #line 1236 "glsl_parser.ypp"
4304 { (yyval
.n
) = ast_bvec4
; ;}
4309 /* Line 1455 of yacc.c */
4310 #line 1237 "glsl_parser.ypp"
4311 { (yyval
.n
) = ast_ivec2
; ;}
4316 /* Line 1455 of yacc.c */
4317 #line 1238 "glsl_parser.ypp"
4318 { (yyval
.n
) = ast_ivec3
; ;}
4323 /* Line 1455 of yacc.c */
4324 #line 1239 "glsl_parser.ypp"
4325 { (yyval
.n
) = ast_ivec4
; ;}
4330 /* Line 1455 of yacc.c */
4331 #line 1240 "glsl_parser.ypp"
4332 { (yyval
.n
) = ast_uvec2
; ;}
4337 /* Line 1455 of yacc.c */
4338 #line 1241 "glsl_parser.ypp"
4339 { (yyval
.n
) = ast_uvec3
; ;}
4344 /* Line 1455 of yacc.c */
4345 #line 1242 "glsl_parser.ypp"
4346 { (yyval
.n
) = ast_uvec4
; ;}
4351 /* Line 1455 of yacc.c */
4352 #line 1243 "glsl_parser.ypp"
4353 { (yyval
.n
) = ast_mat2
; ;}
4358 /* Line 1455 of yacc.c */
4359 #line 1244 "glsl_parser.ypp"
4360 { (yyval
.n
) = ast_mat2x3
; ;}
4365 /* Line 1455 of yacc.c */
4366 #line 1245 "glsl_parser.ypp"
4367 { (yyval
.n
) = ast_mat2x4
; ;}
4372 /* Line 1455 of yacc.c */
4373 #line 1246 "glsl_parser.ypp"
4374 { (yyval
.n
) = ast_mat3x2
; ;}
4379 /* Line 1455 of yacc.c */
4380 #line 1247 "glsl_parser.ypp"
4381 { (yyval
.n
) = ast_mat3
; ;}
4386 /* Line 1455 of yacc.c */
4387 #line 1248 "glsl_parser.ypp"
4388 { (yyval
.n
) = ast_mat3x4
; ;}
4393 /* Line 1455 of yacc.c */
4394 #line 1249 "glsl_parser.ypp"
4395 { (yyval
.n
) = ast_mat4x2
; ;}
4400 /* Line 1455 of yacc.c */
4401 #line 1250 "glsl_parser.ypp"
4402 { (yyval
.n
) = ast_mat4x3
; ;}
4407 /* Line 1455 of yacc.c */
4408 #line 1251 "glsl_parser.ypp"
4409 { (yyval
.n
) = ast_mat4
; ;}
4414 /* Line 1455 of yacc.c */
4415 #line 1252 "glsl_parser.ypp"
4416 { (yyval
.n
) = ast_sampler1d
; ;}
4421 /* Line 1455 of yacc.c */
4422 #line 1253 "glsl_parser.ypp"
4423 { (yyval
.n
) = ast_sampler2d
; ;}
4428 /* Line 1455 of yacc.c */
4429 #line 1254 "glsl_parser.ypp"
4430 { (yyval
.n
) = ast_sampler2drect
; ;}
4435 /* Line 1455 of yacc.c */
4436 #line 1255 "glsl_parser.ypp"
4437 { (yyval
.n
) = ast_sampler3d
; ;}
4442 /* Line 1455 of yacc.c */
4443 #line 1256 "glsl_parser.ypp"
4444 { (yyval
.n
) = ast_samplercube
; ;}
4449 /* Line 1455 of yacc.c */
4450 #line 1257 "glsl_parser.ypp"
4451 { (yyval
.n
) = ast_sampler1dshadow
; ;}
4456 /* Line 1455 of yacc.c */
4457 #line 1258 "glsl_parser.ypp"
4458 { (yyval
.n
) = ast_sampler2dshadow
; ;}
4463 /* Line 1455 of yacc.c */
4464 #line 1259 "glsl_parser.ypp"
4465 { (yyval
.n
) = ast_sampler2drectshadow
; ;}
4470 /* Line 1455 of yacc.c */
4471 #line 1260 "glsl_parser.ypp"
4472 { (yyval
.n
) = ast_samplercubeshadow
; ;}
4477 /* Line 1455 of yacc.c */
4478 #line 1261 "glsl_parser.ypp"
4479 { (yyval
.n
) = ast_sampler1darray
; ;}
4484 /* Line 1455 of yacc.c */
4485 #line 1262 "glsl_parser.ypp"
4486 { (yyval
.n
) = ast_sampler2darray
; ;}
4491 /* Line 1455 of yacc.c */
4492 #line 1263 "glsl_parser.ypp"
4493 { (yyval
.n
) = ast_sampler1darrayshadow
; ;}
4498 /* Line 1455 of yacc.c */
4499 #line 1264 "glsl_parser.ypp"
4500 { (yyval
.n
) = ast_sampler2darrayshadow
; ;}
4505 /* Line 1455 of yacc.c */
4506 #line 1265 "glsl_parser.ypp"
4507 { (yyval
.n
) = ast_isampler1d
; ;}
4512 /* Line 1455 of yacc.c */
4513 #line 1266 "glsl_parser.ypp"
4514 { (yyval
.n
) = ast_isampler2d
; ;}
4519 /* Line 1455 of yacc.c */
4520 #line 1267 "glsl_parser.ypp"
4521 { (yyval
.n
) = ast_isampler3d
; ;}
4526 /* Line 1455 of yacc.c */
4527 #line 1268 "glsl_parser.ypp"
4528 { (yyval
.n
) = ast_isamplercube
; ;}
4533 /* Line 1455 of yacc.c */
4534 #line 1269 "glsl_parser.ypp"
4535 { (yyval
.n
) = ast_isampler1darray
; ;}
4540 /* Line 1455 of yacc.c */
4541 #line 1270 "glsl_parser.ypp"
4542 { (yyval
.n
) = ast_isampler2darray
; ;}
4547 /* Line 1455 of yacc.c */
4548 #line 1271 "glsl_parser.ypp"
4549 { (yyval
.n
) = ast_usampler1d
; ;}
4554 /* Line 1455 of yacc.c */
4555 #line 1272 "glsl_parser.ypp"
4556 { (yyval
.n
) = ast_usampler2d
; ;}
4561 /* Line 1455 of yacc.c */
4562 #line 1273 "glsl_parser.ypp"
4563 { (yyval
.n
) = ast_usampler3d
; ;}
4568 /* Line 1455 of yacc.c */
4569 #line 1274 "glsl_parser.ypp"
4570 { (yyval
.n
) = ast_usamplercube
; ;}
4575 /* Line 1455 of yacc.c */
4576 #line 1275 "glsl_parser.ypp"
4577 { (yyval
.n
) = ast_usampler1darray
; ;}
4582 /* Line 1455 of yacc.c */
4583 #line 1276 "glsl_parser.ypp"
4584 { (yyval
.n
) = ast_usampler2darray
; ;}
4589 /* Line 1455 of yacc.c */
4590 #line 1280 "glsl_parser.ypp"
4592 if (!state
->es_shader
&& state
->language_version
< 130)
4593 _mesa_glsl_error(& (yylsp
[(1) - (1)]), state
,
4594 "precision qualifier forbidden "
4595 "in GLSL %d.%d (1.30 or later "
4597 state
->language_version
/ 100,
4598 state
->language_version
% 100);
4600 (yyval
.n
) = ast_precision_high
;
4606 /* Line 1455 of yacc.c */
4607 #line 1291 "glsl_parser.ypp"
4609 if (!state
->es_shader
&& state
->language_version
< 130)
4610 _mesa_glsl_error(& (yylsp
[(1) - (1)]), state
,
4611 "precision qualifier forbidden "
4612 "in GLSL %d.%d (1.30 or later "
4614 state
->language_version
/ 100,
4615 state
->language_version
% 100);
4617 (yyval
.n
) = ast_precision_medium
;
4623 /* Line 1455 of yacc.c */
4624 #line 1302 "glsl_parser.ypp"
4626 if (!state
->es_shader
&& state
->language_version
< 130)
4627 _mesa_glsl_error(& (yylsp
[(1) - (1)]), state
,
4628 "precision qualifier forbidden "
4629 "in GLSL %d.%d (1.30 or later "
4631 state
->language_version
/ 100,
4632 state
->language_version
% 100);
4634 (yyval
.n
) = ast_precision_low
;
4640 /* Line 1455 of yacc.c */
4641 #line 1317 "glsl_parser.ypp"
4644 (yyval
.struct_specifier
) = new(ctx
) ast_struct_specifier((yyvsp
[(2) - (5)].identifier
), (yyvsp
[(4) - (5)].node
));
4645 (yyval
.struct_specifier
)->set_location(yylloc
);
4651 /* Line 1455 of yacc.c */
4652 #line 1323 "glsl_parser.ypp"
4655 (yyval
.struct_specifier
) = new(ctx
) ast_struct_specifier(NULL
, (yyvsp
[(3) - (4)].node
));
4656 (yyval
.struct_specifier
)->set_location(yylloc
);
4662 /* Line 1455 of yacc.c */
4663 #line 1332 "glsl_parser.ypp"
4665 (yyval
.node
) = (ast_node
*) (yyvsp
[(1) - (1)].declarator_list
);
4666 (yyvsp
[(1) - (1)].declarator_list
)->link
.self_link();
4672 /* Line 1455 of yacc.c */
4673 #line 1337 "glsl_parser.ypp"
4675 (yyval
.node
) = (ast_node
*) (yyvsp
[(1) - (2)].node
);
4676 (yyval
.node
)->link
.insert_before(& (yyvsp
[(2) - (2)].declarator_list
)->link
);
4682 /* Line 1455 of yacc.c */
4683 #line 1345 "glsl_parser.ypp"
4686 ast_fully_specified_type
*type
= new(ctx
) ast_fully_specified_type();
4687 type
->set_location(yylloc
);
4689 type
->specifier
= (yyvsp
[(1) - (3)].type_specifier
);
4690 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list(type
);
4691 (yyval
.declarator_list
)->set_location(yylloc
);
4693 (yyval
.declarator_list
)->declarations
.push_degenerate_list_at_head(& (yyvsp
[(2) - (3)].declaration
)->link
);
4699 /* Line 1455 of yacc.c */
4700 #line 1360 "glsl_parser.ypp"
4702 (yyval
.declaration
) = (yyvsp
[(1) - (1)].declaration
);
4703 (yyvsp
[(1) - (1)].declaration
)->link
.self_link();
4709 /* Line 1455 of yacc.c */
4710 #line 1365 "glsl_parser.ypp"
4712 (yyval
.declaration
) = (yyvsp
[(1) - (3)].declaration
);
4713 (yyval
.declaration
)->link
.insert_before(& (yyvsp
[(3) - (3)].declaration
)->link
);
4719 /* Line 1455 of yacc.c */
4720 #line 1373 "glsl_parser.ypp"
4723 (yyval
.declaration
) = new(ctx
) ast_declaration((yyvsp
[(1) - (1)].identifier
), false, NULL
, NULL
);
4724 (yyval
.declaration
)->set_location(yylloc
);
4730 /* Line 1455 of yacc.c */
4731 #line 1379 "glsl_parser.ypp"
4734 (yyval
.declaration
) = new(ctx
) ast_declaration((yyvsp
[(1) - (4)].identifier
), true, (yyvsp
[(3) - (4)].expression
), NULL
);
4735 (yyval
.declaration
)->set_location(yylloc
);
4741 /* Line 1455 of yacc.c */
4742 #line 1397 "glsl_parser.ypp"
4743 { (yyval
.node
) = (ast_node
*) (yyvsp
[(1) - (1)].compound_statement
); ;}
4748 /* Line 1455 of yacc.c */
4749 #line 1405 "glsl_parser.ypp"
4750 { (yyval
.node
) = NULL
; ;}
4755 /* Line 1455 of yacc.c */
4756 #line 1406 "glsl_parser.ypp"
4757 { (yyval
.node
) = NULL
; ;}
4762 /* Line 1455 of yacc.c */
4763 #line 1413 "glsl_parser.ypp"
4766 (yyval
.compound_statement
) = new(ctx
) ast_compound_statement(true, NULL
);
4767 (yyval
.compound_statement
)->set_location(yylloc
);
4773 /* Line 1455 of yacc.c */
4774 #line 1419 "glsl_parser.ypp"
4777 (yyval
.compound_statement
) = new(ctx
) ast_compound_statement(true, (yyvsp
[(2) - (3)].node
));
4778 (yyval
.compound_statement
)->set_location(yylloc
);
4784 /* Line 1455 of yacc.c */
4785 #line 1427 "glsl_parser.ypp"
4786 { (yyval
.node
) = (ast_node
*) (yyvsp
[(1) - (1)].compound_statement
); ;}
4791 /* Line 1455 of yacc.c */
4792 #line 1433 "glsl_parser.ypp"
4795 (yyval
.compound_statement
) = new(ctx
) ast_compound_statement(false, NULL
);
4796 (yyval
.compound_statement
)->set_location(yylloc
);
4802 /* Line 1455 of yacc.c */
4803 #line 1439 "glsl_parser.ypp"
4806 (yyval
.compound_statement
) = new(ctx
) ast_compound_statement(false, (yyvsp
[(2) - (3)].node
));
4807 (yyval
.compound_statement
)->set_location(yylloc
);
4813 /* Line 1455 of yacc.c */
4814 #line 1448 "glsl_parser.ypp"
4816 if ((yyvsp
[(1) - (1)].node
) == NULL
) {
4817 _mesa_glsl_error(& (yylsp
[(1) - (1)]), state
, "<nil> statement\n");
4818 assert((yyvsp
[(1) - (1)].node
) != NULL
);
4821 (yyval
.node
) = (yyvsp
[(1) - (1)].node
);
4822 (yyval
.node
)->link
.self_link();
4828 /* Line 1455 of yacc.c */
4829 #line 1458 "glsl_parser.ypp"
4831 if ((yyvsp
[(2) - (2)].node
) == NULL
) {
4832 _mesa_glsl_error(& (yylsp
[(2) - (2)]), state
, "<nil> statement\n");
4833 assert((yyvsp
[(2) - (2)].node
) != NULL
);
4835 (yyval
.node
) = (yyvsp
[(1) - (2)].node
);
4836 (yyval
.node
)->link
.insert_before(& (yyvsp
[(2) - (2)].node
)->link
);
4842 /* Line 1455 of yacc.c */
4843 #line 1470 "glsl_parser.ypp"
4846 (yyval
.node
) = new(ctx
) ast_expression_statement(NULL
);
4847 (yyval
.node
)->set_location(yylloc
);
4853 /* Line 1455 of yacc.c */
4854 #line 1476 "glsl_parser.ypp"
4857 (yyval
.node
) = new(ctx
) ast_expression_statement((yyvsp
[(1) - (2)].expression
));
4858 (yyval
.node
)->set_location(yylloc
);
4864 /* Line 1455 of yacc.c */
4865 #line 1485 "glsl_parser.ypp"
4867 (yyval
.node
) = new(state
) ast_selection_statement((yyvsp
[(3) - (5)].expression
), (yyvsp
[(5) - (5)].selection_rest_statement
).then_statement
,
4868 (yyvsp
[(5) - (5)].selection_rest_statement
).else_statement
);
4869 (yyval
.node
)->set_location(yylloc
);
4875 /* Line 1455 of yacc.c */
4876 #line 1494 "glsl_parser.ypp"
4878 (yyval
.selection_rest_statement
).then_statement
= (yyvsp
[(1) - (3)].node
);
4879 (yyval
.selection_rest_statement
).else_statement
= (yyvsp
[(3) - (3)].node
);
4885 /* Line 1455 of yacc.c */
4886 #line 1499 "glsl_parser.ypp"
4888 (yyval
.selection_rest_statement
).then_statement
= (yyvsp
[(1) - (1)].node
);
4889 (yyval
.selection_rest_statement
).else_statement
= NULL
;
4895 /* Line 1455 of yacc.c */
4896 #line 1507 "glsl_parser.ypp"
4898 (yyval
.node
) = (ast_node
*) (yyvsp
[(1) - (1)].expression
);
4904 /* Line 1455 of yacc.c */
4905 #line 1511 "glsl_parser.ypp"
4908 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(2) - (4)].identifier
), false, NULL
, (yyvsp
[(4) - (4)].expression
));
4909 ast_declarator_list
*declarator
= new(ctx
) ast_declarator_list((yyvsp
[(1) - (4)].fully_specified_type
));
4910 decl
->set_location(yylloc
);
4911 declarator
->set_location(yylloc
);
4913 declarator
->declarations
.push_tail(&decl
->link
);
4914 (yyval
.node
) = declarator
;
4920 /* Line 1455 of yacc.c */
4921 #line 1534 "glsl_parser.ypp"
4924 (yyval
.node
) = new(ctx
) ast_iteration_statement(ast_iteration_statement::ast_while
,
4925 NULL
, (yyvsp
[(3) - (5)].node
), NULL
, (yyvsp
[(5) - (5)].node
));
4926 (yyval
.node
)->set_location(yylloc
);
4932 /* Line 1455 of yacc.c */
4933 #line 1541 "glsl_parser.ypp"
4936 (yyval
.node
) = new(ctx
) ast_iteration_statement(ast_iteration_statement::ast_do_while
,
4937 NULL
, (yyvsp
[(5) - (7)].expression
), NULL
, (yyvsp
[(2) - (7)].node
));
4938 (yyval
.node
)->set_location(yylloc
);
4944 /* Line 1455 of yacc.c */
4945 #line 1548 "glsl_parser.ypp"
4948 (yyval
.node
) = new(ctx
) ast_iteration_statement(ast_iteration_statement::ast_for
,
4949 (yyvsp
[(3) - (6)].node
), (yyvsp
[(4) - (6)].for_rest_statement
).cond
, (yyvsp
[(4) - (6)].for_rest_statement
).rest
, (yyvsp
[(6) - (6)].node
));
4950 (yyval
.node
)->set_location(yylloc
);
4956 /* Line 1455 of yacc.c */
4957 #line 1564 "glsl_parser.ypp"
4959 (yyval
.node
) = NULL
;
4965 /* Line 1455 of yacc.c */
4966 #line 1571 "glsl_parser.ypp"
4968 (yyval
.for_rest_statement
).cond
= (yyvsp
[(1) - (2)].node
);
4969 (yyval
.for_rest_statement
).rest
= NULL
;
4975 /* Line 1455 of yacc.c */
4976 #line 1576 "glsl_parser.ypp"
4978 (yyval
.for_rest_statement
).cond
= (yyvsp
[(1) - (3)].node
);
4979 (yyval
.for_rest_statement
).rest
= (yyvsp
[(3) - (3)].expression
);
4985 /* Line 1455 of yacc.c */
4986 #line 1585 "glsl_parser.ypp"
4989 (yyval
.node
) = new(ctx
) ast_jump_statement(ast_jump_statement::ast_continue
, NULL
);
4990 (yyval
.node
)->set_location(yylloc
);
4996 /* Line 1455 of yacc.c */
4997 #line 1591 "glsl_parser.ypp"
5000 (yyval
.node
) = new(ctx
) ast_jump_statement(ast_jump_statement::ast_break
, NULL
);
5001 (yyval
.node
)->set_location(yylloc
);
5007 /* Line 1455 of yacc.c */
5008 #line 1597 "glsl_parser.ypp"
5011 (yyval
.node
) = new(ctx
) ast_jump_statement(ast_jump_statement::ast_return
, NULL
);
5012 (yyval
.node
)->set_location(yylloc
);
5018 /* Line 1455 of yacc.c */
5019 #line 1603 "glsl_parser.ypp"
5022 (yyval
.node
) = new(ctx
) ast_jump_statement(ast_jump_statement::ast_return
, (yyvsp
[(2) - (3)].expression
));
5023 (yyval
.node
)->set_location(yylloc
);
5029 /* Line 1455 of yacc.c */
5030 #line 1609 "glsl_parser.ypp"
5033 (yyval
.node
) = new(ctx
) ast_jump_statement(ast_jump_statement::ast_discard
, NULL
);
5034 (yyval
.node
)->set_location(yylloc
);
5040 /* Line 1455 of yacc.c */
5041 #line 1617 "glsl_parser.ypp"
5042 { (yyval
.node
) = (yyvsp
[(1) - (1)].function_definition
); ;}
5047 /* Line 1455 of yacc.c */
5048 #line 1618 "glsl_parser.ypp"
5049 { (yyval
.node
) = (yyvsp
[(1) - (1)].node
); ;}
5054 /* Line 1455 of yacc.c */
5055 #line 1619 "glsl_parser.ypp"
5056 { (yyval
.node
) = NULL
; ;}
5061 /* Line 1455 of yacc.c */
5062 #line 1624 "glsl_parser.ypp"
5065 (yyval
.function_definition
) = new(ctx
) ast_function_definition();
5066 (yyval
.function_definition
)->set_location(yylloc
);
5067 (yyval
.function_definition
)->prototype
= (yyvsp
[(1) - (2)].function
);
5068 (yyval
.function_definition
)->body
= (yyvsp
[(2) - (2)].compound_statement
);
5074 /* Line 1455 of yacc.c */
5075 #line 5076 "glsl_parser.cpp"
5078 YY_SYMBOL_PRINT ("-> $$ =", yyr1
[yyn
], &yyval
, &yyloc
);
5082 YY_STACK_PRINT (yyss
, yyssp
);
5087 /* Now `shift' the result of the reduction. Determine what state
5088 that goes to, based on the state we popped back to and the rule
5089 number reduced by. */
5093 yystate
= yypgoto
[yyn
- YYNTOKENS
] + *yyssp
;
5094 if (0 <= yystate
&& yystate
<= YYLAST
&& yycheck
[yystate
] == *yyssp
)
5095 yystate
= yytable
[yystate
];
5097 yystate
= yydefgoto
[yyn
- YYNTOKENS
];
5102 /*------------------------------------.
5103 | yyerrlab -- here on detecting error |
5104 `------------------------------------*/
5106 /* If not already recovering from an error, report this error. */
5110 #if ! YYERROR_VERBOSE
5111 yyerror (&yylloc
, state
, YY_("syntax error"));
5114 YYSIZE_T yysize
= yysyntax_error (0, yystate
, yychar
);
5115 if (yymsg_alloc
< yysize
&& yymsg_alloc
< YYSTACK_ALLOC_MAXIMUM
)
5117 YYSIZE_T yyalloc
= 2 * yysize
;
5118 if (! (yysize
<= yyalloc
&& yyalloc
<= YYSTACK_ALLOC_MAXIMUM
))
5119 yyalloc
= YYSTACK_ALLOC_MAXIMUM
;
5120 if (yymsg
!= yymsgbuf
)
5121 YYSTACK_FREE (yymsg
);
5122 yymsg
= (char *) YYSTACK_ALLOC (yyalloc
);
5124 yymsg_alloc
= yyalloc
;
5128 yymsg_alloc
= sizeof yymsgbuf
;
5132 if (0 < yysize
&& yysize
<= yymsg_alloc
)
5134 (void) yysyntax_error (yymsg
, yystate
, yychar
);
5135 yyerror (&yylloc
, state
, yymsg
);
5139 yyerror (&yylloc
, state
, YY_("syntax error"));
5141 goto yyexhaustedlab
;
5147 yyerror_range
[0] = yylloc
;
5149 if (yyerrstatus
== 3)
5151 /* If just tried and failed to reuse lookahead token after an
5152 error, discard it. */
5154 if (yychar
<= YYEOF
)
5156 /* Return failure if at end of input. */
5157 if (yychar
== YYEOF
)
5162 yydestruct ("Error: discarding",
5163 yytoken
, &yylval
, &yylloc
, state
);
5168 /* Else will try to reuse lookahead token after shifting the error
5173 /*---------------------------------------------------.
5174 | yyerrorlab -- error raised explicitly by YYERROR. |
5175 `---------------------------------------------------*/
5178 /* Pacify compilers like GCC when the user code never invokes
5179 YYERROR and the label yyerrorlab therefore never appears in user
5181 if (/*CONSTCOND*/ 0)
5184 yyerror_range
[0] = yylsp
[1-yylen
];
5185 /* Do not reclaim the symbols of the rule which action triggered
5189 YY_STACK_PRINT (yyss
, yyssp
);
5194 /*-------------------------------------------------------------.
5195 | yyerrlab1 -- common code for both syntax error and YYERROR. |
5196 `-------------------------------------------------------------*/
5198 yyerrstatus
= 3; /* Each real token shifted decrements this. */
5202 yyn
= yypact
[yystate
];
5203 if (yyn
!= YYPACT_NINF
)
5206 if (0 <= yyn
&& yyn
<= YYLAST
&& yycheck
[yyn
] == YYTERROR
)
5214 /* Pop the current state because it cannot handle the error token. */
5218 yyerror_range
[0] = *yylsp
;
5219 yydestruct ("Error: popping",
5220 yystos
[yystate
], yyvsp
, yylsp
, state
);
5223 YY_STACK_PRINT (yyss
, yyssp
);
5228 yyerror_range
[1] = yylloc
;
5229 /* Using YYLLOC is tempting, but would change the location of
5230 the lookahead. YYLOC is available though. */
5231 YYLLOC_DEFAULT (yyloc
, (yyerror_range
- 1), 2);
5234 /* Shift the error token. */
5235 YY_SYMBOL_PRINT ("Shifting", yystos
[yyn
], yyvsp
, yylsp
);
5241 /*-------------------------------------.
5242 | yyacceptlab -- YYACCEPT comes here. |
5243 `-------------------------------------*/
5248 /*-----------------------------------.
5249 | yyabortlab -- YYABORT comes here. |
5250 `-----------------------------------*/
5255 #if !defined(yyoverflow) || YYERROR_VERBOSE
5256 /*-------------------------------------------------.
5257 | yyexhaustedlab -- memory exhaustion comes here. |
5258 `-------------------------------------------------*/
5260 yyerror (&yylloc
, state
, YY_("memory exhausted"));
5266 if (yychar
!= YYEMPTY
)
5267 yydestruct ("Cleanup: discarding lookahead",
5268 yytoken
, &yylval
, &yylloc
, state
);
5269 /* Do not reclaim the symbols of the rule which action triggered
5270 this YYABORT or YYACCEPT. */
5272 YY_STACK_PRINT (yyss
, yyssp
);
5273 while (yyssp
!= yyss
)
5275 yydestruct ("Cleanup: popping",
5276 yystos
[*yyssp
], yyvsp
, yylsp
, state
);
5281 YYSTACK_FREE (yyss
);
5284 if (yymsg
!= yymsgbuf
)
5285 YYSTACK_FREE (yymsg
);
5287 /* Make sure YYID is used. */
5288 return YYID (yyresult
);