1 /* A Bison parser, made by GNU Bison 2.4.3. */
3 /* Skeleton implementation for Bison's Yacc-like parsers in C
5 Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
6 2009, 2010 Free Software Foundation, Inc.
8 This program is free software: you can redistribute it and/or modify
9 it under the terms of the GNU General Public License as published by
10 the Free Software Foundation, either version 3 of the License, or
11 (at your option) any later version.
13 This program is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details.
18 You should have received a copy of the GNU General Public License
19 along with this program. If not, see <http://www.gnu.org/licenses/>. */
21 /* As a special exception, you may create a larger work that contains
22 part or all of the Bison parser skeleton and distribute that work
23 under terms of your choice, so long as that work isn't itself a
24 parser generator using the skeleton or a modified version thereof
25 as a parser skeleton. Alternatively, if you modify or redistribute
26 the parser skeleton itself, you may (at your option) remove this
27 special exception, which will cause the skeleton and the resulting
28 Bison output files to be licensed under the GNU General Public
29 License without this special exception.
31 This special exception was added by the Free Software Foundation in
32 version 2.2 of Bison. */
34 /* C LALR(1) parser skeleton written by Richard Stallman, by
35 simplifying the original so-called "semantic" parser. */
37 /* All symbols defined below should begin with yy or YY, to avoid
38 infringing on user name space. This should be done even for local
39 variables, as they might otherwise be expanded by user macros.
40 There are some unavoidable exceptions within include files to
41 define necessary library symbols; they are noted "INFRINGES ON
42 USER NAME SPACE" below. */
44 /* Identify Bison output. */
48 #define YYBISON_VERSION "2.4.3"
51 #define YYSKELETON_NAME "yacc.c"
62 /* Using locations. */
63 #define YYLSP_NEEDED 1
65 /* Substitute the variable and function names. */
66 #define yyparse _mesa_glsl_parse
67 #define yylex _mesa_glsl_lex
68 #define yyerror _mesa_glsl_error
69 #define yylval _mesa_glsl_lval
70 #define yychar _mesa_glsl_char
71 #define yydebug _mesa_glsl_debug
72 #define yynerrs _mesa_glsl_nerrs
73 #define yylloc _mesa_glsl_lloc
75 /* Copy the first part of user declarations. */
77 /* Line 189 of yacc.c */
78 #line 1 "glsl_parser.yy"
81 * Copyright © 2008, 2009 Intel Corporation
83 * Permission is hereby granted, free of charge, to any person obtaining a
84 * copy of this software and associated documentation files (the "Software"),
85 * to deal in the Software without restriction, including without limitation
86 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
87 * and/or sell copies of the Software, and to permit persons to whom the
88 * Software is furnished to do so, subject to the following conditions:
90 * The above copyright notice and this permission notice (including the next
91 * paragraph) shall be included in all copies or substantial portions of the
94 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
95 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
96 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
97 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
98 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
99 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
100 * DEALINGS IN THE SOFTWARE.
108 #include "glsl_parser_extras.h"
109 #include "glsl_types.h"
111 #define YYLEX_PARAM state->scanner
115 static void yyerror(YYLTYPE
*loc
, _mesa_glsl_parse_state
*st
, const char *msg
)
117 _mesa_glsl_error(loc
, st
, "%s", msg
);
121 /* Line 189 of yacc.c */
122 #line 123 "glsl_parser.cpp"
124 /* Enabling traces. */
129 /* Enabling verbose error messages. */
130 #ifdef YYERROR_VERBOSE
131 # undef YYERROR_VERBOSE
132 # define YYERROR_VERBOSE 1
134 # define YYERROR_VERBOSE 1
137 /* Enabling the token table. */
138 #ifndef YYTOKEN_TABLE
139 # define YYTOKEN_TABLE 0
146 /* Put the tokens into the symbol table, so that GDB and other debuggers
200 SAMPLER1DSHADOW
= 309,
201 SAMPLER2DSHADOW
= 310,
202 SAMPLERCUBESHADOW
= 311,
203 SAMPLER1DARRAY
= 312,
204 SAMPLER2DARRAY
= 313,
205 SAMPLER1DARRAYSHADOW
= 314,
206 SAMPLER2DARRAYSHADOW
= 315,
211 ISAMPLER1DARRAY
= 320,
212 ISAMPLER2DARRAY
= 321,
217 USAMPLER1DARRAY
= 326,
218 USAMPLER2DARRAY
= 327,
219 SAMPLEREXTERNALOES
= 328,
224 TYPE_IDENTIFIER
= 333,
225 NEW_IDENTIFIER
= 334,
230 FIELD_SELECTION
= 339,
265 PRAGMA_DEBUG_ON
= 374,
266 PRAGMA_DEBUG_OFF
= 375,
267 PRAGMA_OPTIMIZE_ON
= 376,
268 PRAGMA_OPTIMIZE_OFF
= 377,
269 PRAGMA_INVARIANT_ALL
= 378,
306 SAMPLER2DRECTSHADOW
= 415,
340 IMAGE1DARRAYSHADOW
= 449,
341 IMAGE2DARRAYSHADOW
= 450,
348 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
349 typedef union YYSTYPE
352 /* Line 214 of yacc.c */
353 #line 58 "glsl_parser.yy"
359 struct ast_type_qualifier type_qualifier
;
362 ast_type_specifier
*type_specifier
;
363 ast_fully_specified_type
*fully_specified_type
;
364 ast_function
*function
;
365 ast_parameter_declarator
*parameter_declarator
;
366 ast_function_definition
*function_definition
;
367 ast_compound_statement
*compound_statement
;
368 ast_expression
*expression
;
369 ast_declarator_list
*declarator_list
;
370 ast_struct_specifier
*struct_specifier
;
371 ast_declaration
*declaration
;
372 ast_switch_body
*switch_body
;
373 ast_case_label
*case_label
;
374 ast_case_label_list
*case_label_list
;
375 ast_case_statement
*case_statement
;
376 ast_case_statement_list
*case_statement_list
;
380 ast_expression
*rest
;
381 } for_rest_statement
;
384 ast_node
*then_statement
;
385 ast_node
*else_statement
;
386 } selection_rest_statement
;
390 /* Line 214 of yacc.c */
391 #line 392 "glsl_parser.cpp"
393 # define YYSTYPE_IS_TRIVIAL 1
394 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
395 # define YYSTYPE_IS_DECLARED 1
398 #if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED
399 typedef struct YYLTYPE
406 # define yyltype YYLTYPE /* obsolescent; will be withdrawn */
407 # define YYLTYPE_IS_DECLARED 1
408 # define YYLTYPE_IS_TRIVIAL 1
412 /* Copy the second part of user declarations. */
415 /* Line 264 of yacc.c */
416 #line 417 "glsl_parser.cpp"
423 typedef YYTYPE_UINT8 yytype_uint8
;
425 typedef unsigned char yytype_uint8
;
429 typedef YYTYPE_INT8 yytype_int8
;
430 #elif (defined __STDC__ || defined __C99__FUNC__ \
431 || defined __cplusplus || defined _MSC_VER)
432 typedef signed char yytype_int8
;
434 typedef short int yytype_int8
;
438 typedef YYTYPE_UINT16 yytype_uint16
;
440 typedef unsigned short int yytype_uint16
;
444 typedef YYTYPE_INT16 yytype_int16
;
446 typedef short int yytype_int16
;
450 # ifdef __SIZE_TYPE__
451 # define YYSIZE_T __SIZE_TYPE__
452 # elif defined size_t
453 # define YYSIZE_T size_t
454 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
455 || defined __cplusplus || defined _MSC_VER)
456 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
457 # define YYSIZE_T size_t
459 # define YYSIZE_T unsigned int
463 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
466 # if defined YYENABLE_NLS && YYENABLE_NLS
468 # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
469 # define YY_(msgid) dgettext ("bison-runtime", msgid)
473 # define YY_(msgid) msgid
477 /* Suppress unused-variable warnings by "using" E. */
478 #if ! defined lint || defined __GNUC__
479 # define YYUSE(e) ((void) (e))
481 # define YYUSE(e) /* empty */
484 /* Identity function, used to suppress warnings about constant conditions. */
488 #if (defined __STDC__ || defined __C99__FUNC__ \
489 || defined __cplusplus || defined _MSC_VER)
502 #if ! defined yyoverflow || YYERROR_VERBOSE
504 /* The parser invokes alloca or malloc; define the necessary symbols. */
506 # ifdef YYSTACK_USE_ALLOCA
507 # if YYSTACK_USE_ALLOCA
509 # define YYSTACK_ALLOC __builtin_alloca
510 # elif defined __BUILTIN_VA_ARG_INCR
511 # include <alloca.h> /* INFRINGES ON USER NAME SPACE */
513 # define YYSTACK_ALLOC __alloca
514 # elif defined _MSC_VER
515 # include <malloc.h> /* INFRINGES ON USER NAME SPACE */
516 # define alloca _alloca
518 # define YYSTACK_ALLOC alloca
519 # if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
520 || defined __cplusplus || defined _MSC_VER)
521 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
530 # ifdef YYSTACK_ALLOC
531 /* Pacify GCC's `empty if-body' warning. */
532 # define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
533 # ifndef YYSTACK_ALLOC_MAXIMUM
534 /* The OS might guarantee only one guard page at the bottom of the stack,
535 and a page size can be as small as 4096 bytes. So we cannot safely
536 invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
537 to allow for a few compiler-allocated temporary stack slots. */
538 # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
541 # define YYSTACK_ALLOC YYMALLOC
542 # define YYSTACK_FREE YYFREE
543 # ifndef YYSTACK_ALLOC_MAXIMUM
544 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
546 # if (defined __cplusplus && ! defined _STDLIB_H \
547 && ! ((defined YYMALLOC || defined malloc) \
548 && (defined YYFREE || defined free)))
549 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
555 # define YYMALLOC malloc
556 # if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
557 || defined __cplusplus || defined _MSC_VER)
558 void *malloc (YYSIZE_T
); /* INFRINGES ON USER NAME SPACE */
563 # if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
564 || defined __cplusplus || defined _MSC_VER)
565 void free (void *); /* INFRINGES ON USER NAME SPACE */
569 #endif /* ! defined yyoverflow || YYERROR_VERBOSE */
572 #if (! defined yyoverflow \
573 && (! defined __cplusplus \
574 || (defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL \
575 && defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
577 /* A type that is properly aligned for any stack member. */
580 yytype_int16 yyss_alloc
;
585 /* The size of the maximum gap between one aligned stack and the next. */
586 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
588 /* The size of an array large to enough to hold all stacks, each with
590 # define YYSTACK_BYTES(N) \
591 ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \
592 + 2 * YYSTACK_GAP_MAXIMUM)
594 /* Copy COUNT objects from FROM to TO. The source and destination do
597 # if defined __GNUC__ && 1 < __GNUC__
598 # define YYCOPY(To, From, Count) \
599 __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
601 # define YYCOPY(To, From, Count) \
605 for (yyi = 0; yyi < (Count); yyi++) \
606 (To)[yyi] = (From)[yyi]; \
612 /* Relocate STACK from its old location to the new one. The
613 local variables YYSIZE and YYSTACKSIZE give the old and new number of
614 elements in the stack, and YYPTR gives the new location of the
615 stack. Advance YYPTR to a properly aligned location for the next
617 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \
620 YYSIZE_T yynewbytes; \
621 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
622 Stack = &yyptr->Stack_alloc; \
623 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
624 yyptr += yynewbytes / sizeof (*yyptr); \
630 /* YYFINAL -- State number of the termination state. */
632 /* YYLAST -- Last index in YYTABLE. */
635 /* YYNTOKENS -- Number of terminals. */
636 #define YYNTOKENS 221
637 /* YYNNTS -- Number of nonterminals. */
639 /* YYNRULES -- Number of rules. */
641 /* YYNRULES -- Number of states. */
642 #define YYNSTATES 445
644 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
646 #define YYMAXUTOK 451
648 #define YYTRANSLATE(YYX) \
649 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
651 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
652 static const yytype_uint8 yytranslate
[] =
654 0, 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, 205, 2, 2, 2, 209, 212, 2,
658 197, 198, 207, 203, 202, 204, 201, 208, 2, 2,
659 2, 2, 2, 2, 2, 2, 2, 2, 216, 218,
660 210, 217, 211, 215, 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, 199, 2, 200, 213, 2, 2, 2, 2, 2,
664 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
665 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
666 2, 2, 2, 219, 214, 220, 206, 2, 2, 2,
667 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
668 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
669 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
670 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
671 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
672 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
673 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
674 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
675 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
676 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
677 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
678 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
679 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
680 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
681 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
682 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
683 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
684 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
685 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
686 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
687 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
688 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
689 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
690 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
691 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
692 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
693 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
694 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
695 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
696 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
697 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
698 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
703 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
705 static const yytype_uint16 yyprhs
[] =
707 0, 0, 3, 4, 9, 10, 14, 17, 20, 23,
708 26, 29, 30, 33, 35, 37, 39, 45, 47, 50,
709 52, 54, 56, 58, 60, 62, 64, 68, 70, 75,
710 77, 81, 84, 87, 89, 91, 93, 97, 100, 103,
711 106, 108, 111, 115, 118, 120, 122, 124, 127, 130,
712 133, 135, 138, 142, 145, 147, 150, 153, 156, 158,
713 160, 162, 164, 166, 170, 174, 178, 180, 184, 188,
714 190, 194, 198, 200, 204, 208, 212, 216, 218, 222,
715 226, 228, 232, 234, 238, 240, 244, 246, 250, 252,
716 256, 258, 262, 264, 270, 272, 276, 278, 280, 282,
717 284, 286, 288, 290, 292, 294, 296, 298, 300, 304,
718 306, 309, 312, 317, 320, 322, 324, 327, 331, 335,
719 338, 344, 348, 351, 355, 358, 359, 361, 363, 365,
720 367, 369, 373, 379, 386, 394, 403, 409, 411, 414,
721 419, 425, 432, 440, 445, 448, 450, 453, 458, 460,
722 464, 466, 470, 472, 474, 476, 478, 480, 482, 485,
723 487, 490, 493, 497, 499, 501, 503, 505, 508, 510,
724 512, 515, 518, 520, 522, 525, 527, 531, 536, 538,
725 540, 542, 544, 546, 548, 550, 552, 554, 556, 558,
726 560, 562, 564, 566, 568, 570, 572, 574, 576, 578,
727 580, 582, 584, 586, 588, 590, 592, 594, 596, 598,
728 600, 602, 604, 606, 608, 610, 612, 614, 616, 618,
729 620, 622, 624, 626, 628, 630, 632, 634, 636, 638,
730 640, 642, 644, 646, 648, 650, 652, 658, 663, 665,
731 668, 672, 674, 678, 680, 685, 687, 689, 691, 693,
732 695, 697, 699, 701, 703, 705, 708, 709, 714, 716,
733 718, 721, 725, 727, 730, 732, 735, 741, 745, 747,
734 749, 754, 760, 763, 767, 771, 774, 776, 779, 782,
735 785, 787, 790, 796, 804, 811, 813, 815, 817, 818,
736 821, 825, 828, 831, 834, 838, 841, 843, 845, 847
739 /* YYRHS -- A `-1'-separated list of the rules' RHS. */
740 static const yytype_int16 yyrhs
[] =
742 222, 0, -1, -1, 224, 226, 223, 229, -1, -1,
743 112, 81, 116, -1, 119, 116, -1, 120, 116, -1,
744 121, 116, -1, 122, 116, -1, 123, 116, -1, -1,
745 226, 228, -1, 77, -1, 78, -1, 79, -1, 113,
746 227, 115, 227, 116, -1, 316, -1, 229, 316, -1,
747 77, -1, 79, -1, 230, -1, 81, -1, 82, -1,
748 80, -1, 83, -1, 197, 261, 198, -1, 231, -1,
749 232, 199, 233, 200, -1, 234, -1, 232, 201, 227,
750 -1, 232, 87, -1, 232, 88, -1, 261, -1, 235,
751 -1, 236, -1, 232, 201, 241, -1, 238, 198, -1,
752 237, 198, -1, 239, 75, -1, 239, -1, 239, 259,
753 -1, 238, 202, 259, -1, 240, 197, -1, 282, -1,
754 230, -1, 84, -1, 243, 198, -1, 242, 198, -1,
755 244, 75, -1, 244, -1, 244, 259, -1, 243, 202,
756 259, -1, 230, 197, -1, 232, -1, 87, 245, -1,
757 88, 245, -1, 246, 245, -1, 203, -1, 204, -1,
758 205, -1, 206, -1, 245, -1, 247, 207, 245, -1,
759 247, 208, 245, -1, 247, 209, 245, -1, 247, -1,
760 248, 203, 247, -1, 248, 204, 247, -1, 248, -1,
761 249, 85, 248, -1, 249, 86, 248, -1, 249, -1,
762 250, 210, 249, -1, 250, 211, 249, -1, 250, 89,
763 249, -1, 250, 90, 249, -1, 250, -1, 251, 91,
764 250, -1, 251, 92, 250, -1, 251, -1, 252, 212,
765 251, -1, 252, -1, 253, 213, 252, -1, 253, -1,
766 254, 214, 253, -1, 254, -1, 255, 93, 254, -1,
767 255, -1, 256, 95, 255, -1, 256, -1, 257, 94,
768 256, -1, 257, -1, 257, 215, 261, 216, 259, -1,
769 258, -1, 245, 260, 259, -1, 217, -1, 96, -1,
770 97, -1, 99, -1, 98, -1, 105, -1, 100, -1,
771 101, -1, 102, -1, 103, -1, 104, -1, 259, -1,
772 261, 202, 259, -1, 258, -1, 264, 218, -1, 272,
773 218, -1, 111, 286, 283, 218, -1, 265, 198, -1,
774 267, -1, 266, -1, 267, 269, -1, 266, 202, 269,
775 -1, 274, 230, 197, -1, 282, 227, -1, 282, 227,
776 199, 262, 200, -1, 279, 270, 268, -1, 270, 268,
777 -1, 279, 270, 271, -1, 270, 271, -1, -1, 33,
778 -1, 34, -1, 35, -1, 282, -1, 273, -1, 272,
779 202, 227, -1, 272, 202, 227, 199, 200, -1, 272,
780 202, 227, 199, 262, 200, -1, 272, 202, 227, 199,
781 200, 217, 292, -1, 272, 202, 227, 199, 262, 200,
782 217, 292, -1, 272, 202, 227, 217, 292, -1, 274,
783 -1, 274, 227, -1, 274, 227, 199, 200, -1, 274,
784 227, 199, 262, 200, -1, 274, 227, 199, 200, 217,
785 292, -1, 274, 227, 199, 262, 200, 217, 292, -1,
786 274, 227, 217, 292, -1, 106, 230, -1, 282, -1,
787 280, 282, -1, 124, 197, 276, 198, -1, 277, -1,
788 276, 202, 277, -1, 227, -1, 227, 217, 81, -1,
789 40, -1, 39, -1, 38, -1, 4, -1, 281, -1,
790 275, -1, 275, 281, -1, 278, -1, 278, 281, -1,
791 106, 281, -1, 106, 278, 281, -1, 106, -1, 4,
792 -1, 3, -1, 37, -1, 32, 37, -1, 33, -1,
793 34, -1, 32, 33, -1, 32, 34, -1, 36, -1,
794 283, -1, 286, 283, -1, 284, -1, 284, 199, 200,
795 -1, 284, 199, 262, 200, -1, 285, -1, 287, -1,
796 78, -1, 75, -1, 6, -1, 7, -1, 8, -1,
797 5, -1, 29, -1, 30, -1, 31, -1, 20, -1,
798 21, -1, 22, -1, 23, -1, 24, -1, 25, -1,
799 26, -1, 27, -1, 28, -1, 41, -1, 42, -1,
800 43, -1, 44, -1, 45, -1, 46, -1, 47, -1,
801 48, -1, 49, -1, 50, -1, 51, -1, 158, -1,
802 52, -1, 53, -1, 73, -1, 54, -1, 55, -1,
803 160, -1, 56, -1, 57, -1, 58, -1, 59, -1,
804 60, -1, 61, -1, 62, -1, 63, -1, 64, -1,
805 65, -1, 66, -1, 67, -1, 68, -1, 69, -1,
806 70, -1, 71, -1, 72, -1, 109, -1, 108, -1,
807 107, -1, 74, 227, 219, 288, 220, -1, 74, 219,
808 288, 220, -1, 289, -1, 288, 289, -1, 282, 290,
809 218, -1, 291, -1, 290, 202, 291, -1, 227, -1,
810 227, 199, 262, 200, -1, 259, -1, 263, -1, 296,
811 -1, 295, -1, 293, -1, 301, -1, 302, -1, 305,
812 -1, 311, -1, 315, -1, 219, 220, -1, -1, 219,
813 297, 300, 220, -1, 299, -1, 295, -1, 219, 220,
814 -1, 219, 300, 220, -1, 294, -1, 300, 294, -1,
815 218, -1, 261, 218, -1, 14, 197, 261, 198, 303,
816 -1, 294, 12, 294, -1, 294, -1, 261, -1, 274,
817 227, 217, 292, -1, 17, 197, 261, 198, 306, -1,
818 219, 220, -1, 219, 310, 220, -1, 18, 261, 216,
819 -1, 19, 216, -1, 307, -1, 308, 307, -1, 308,
820 294, -1, 309, 294, -1, 309, -1, 310, 309, -1,
821 76, 197, 304, 198, 298, -1, 11, 294, 76, 197,
822 261, 198, 218, -1, 13, 197, 312, 314, 198, 298,
823 -1, 301, -1, 293, -1, 304, -1, -1, 313, 218,
824 -1, 313, 218, 261, -1, 10, 218, -1, 9, 218,
825 -1, 16, 218, -1, 16, 261, 218, -1, 15, 218,
826 -1, 317, -1, 263, -1, 225, -1, 264, 299, -1
829 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
830 static const yytype_uint16 yyrline
[] =
832 0, 236, 236, 235, 247, 249, 289, 290, 291, 292,
833 293, 305, 307, 311, 312, 313, 317, 326, 334, 345,
834 346, 350, 357, 364, 371, 378, 385, 392, 393, 399,
835 403, 410, 416, 425, 429, 433, 434, 443, 444, 448,
836 449, 453, 459, 471, 475, 481, 488, 498, 499, 503,
837 504, 508, 514, 526, 537, 538, 544, 550, 560, 561,
838 562, 563, 567, 568, 574, 580, 589, 590, 596, 605,
839 606, 612, 621, 622, 628, 634, 640, 649, 650, 656,
840 665, 666, 675, 676, 685, 686, 695, 696, 705, 706,
841 715, 716, 725, 726, 735, 736, 745, 746, 747, 748,
842 749, 750, 751, 752, 753, 754, 755, 759, 763, 779,
843 783, 788, 792, 801, 805, 806, 810, 815, 823, 837,
844 847, 862, 869, 874, 885, 898, 901, 906, 911, 920,
845 924, 925, 935, 945, 955, 965, 975, 989, 996, 1005,
846 1014, 1023, 1032, 1041, 1050, 1064, 1071, 1082, 1089, 1090,
847 1109, 1168, 1209, 1214, 1219, 1227, 1235, 1236, 1237, 1242,
848 1243, 1248, 1253, 1259, 1267, 1272, 1277, 1282, 1288, 1293,
849 1298, 1303, 1308, 1316, 1320, 1328, 1329, 1335, 1344, 1350,
850 1356, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373,
851 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383,
852 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393,
853 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403,
854 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413,
855 1414, 1415, 1416, 1420, 1430, 1440, 1453, 1460, 1469, 1474,
856 1482, 1497, 1502, 1510, 1517, 1526, 1530, 1536, 1537, 1541,
857 1542, 1543, 1544, 1545, 1546, 1550, 1557, 1556, 1570, 1571,
858 1575, 1581, 1590, 1600, 1612, 1618, 1627, 1636, 1641, 1649,
859 1653, 1671, 1679, 1684, 1692, 1697, 1705, 1713, 1721, 1729,
860 1737, 1745, 1753, 1760, 1767, 1777, 1778, 1782, 1784, 1790,
861 1795, 1804, 1810, 1816, 1822, 1828, 1837, 1838, 1839, 1843
865 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
866 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
867 First, the terminals, then, starting at YYNTOKENS, nonterminals. */
868 static const char *const yytname
[] =
870 "$end", "error", "$undefined", "ATTRIBUTE", "CONST_TOK", "BOOL_TOK",
871 "FLOAT_TOK", "INT_TOK", "UINT_TOK", "BREAK", "CONTINUE", "DO", "ELSE",
872 "FOR", "IF", "DISCARD", "RETURN", "SWITCH", "CASE", "DEFAULT", "BVEC2",
873 "BVEC3", "BVEC4", "IVEC2", "IVEC3", "IVEC4", "UVEC2", "UVEC3", "UVEC4",
874 "VEC2", "VEC3", "VEC4", "CENTROID", "IN_TOK", "OUT_TOK", "INOUT_TOK",
875 "UNIFORM", "VARYING", "NOPERSPECTIVE", "FLAT", "SMOOTH", "MAT2X2",
876 "MAT2X3", "MAT2X4", "MAT3X2", "MAT3X3", "MAT3X4", "MAT4X2", "MAT4X3",
877 "MAT4X4", "SAMPLER1D", "SAMPLER2D", "SAMPLER3D", "SAMPLERCUBE",
878 "SAMPLER1DSHADOW", "SAMPLER2DSHADOW", "SAMPLERCUBESHADOW",
879 "SAMPLER1DARRAY", "SAMPLER2DARRAY", "SAMPLER1DARRAYSHADOW",
880 "SAMPLER2DARRAYSHADOW", "ISAMPLER1D", "ISAMPLER2D", "ISAMPLER3D",
881 "ISAMPLERCUBE", "ISAMPLER1DARRAY", "ISAMPLER2DARRAY", "USAMPLER1D",
882 "USAMPLER2D", "USAMPLER3D", "USAMPLERCUBE", "USAMPLER1DARRAY",
883 "USAMPLER2DARRAY", "SAMPLEREXTERNALOES", "STRUCT", "VOID_TOK", "WHILE",
884 "IDENTIFIER", "TYPE_IDENTIFIER", "NEW_IDENTIFIER", "FLOATCONSTANT",
885 "INTCONSTANT", "UINTCONSTANT", "BOOLCONSTANT", "FIELD_SELECTION",
886 "LEFT_OP", "RIGHT_OP", "INC_OP", "DEC_OP", "LE_OP", "GE_OP", "EQ_OP",
887 "NE_OP", "AND_OP", "OR_OP", "XOR_OP", "MUL_ASSIGN", "DIV_ASSIGN",
888 "ADD_ASSIGN", "MOD_ASSIGN", "LEFT_ASSIGN", "RIGHT_ASSIGN", "AND_ASSIGN",
889 "XOR_ASSIGN", "OR_ASSIGN", "SUB_ASSIGN", "INVARIANT", "LOWP", "MEDIUMP",
890 "HIGHP", "SUPERP", "PRECISION", "VERSION_TOK", "EXTENSION", "LINE",
891 "COLON", "EOL", "INTERFACE", "OUTPUT", "PRAGMA_DEBUG_ON",
892 "PRAGMA_DEBUG_OFF", "PRAGMA_OPTIMIZE_ON", "PRAGMA_OPTIMIZE_OFF",
893 "PRAGMA_INVARIANT_ALL", "LAYOUT_TOK", "ASM", "CLASS", "UNION", "ENUM",
894 "TYPEDEF", "TEMPLATE", "THIS", "PACKED_TOK", "GOTO", "INLINE_TOK",
895 "NOINLINE", "VOLATILE", "PUBLIC_TOK", "STATIC", "EXTERN", "EXTERNAL",
896 "LONG_TOK", "SHORT_TOK", "DOUBLE_TOK", "HALF", "FIXED_TOK", "UNSIGNED",
897 "INPUT_TOK", "OUPTUT", "HVEC2", "HVEC3", "HVEC4", "DVEC2", "DVEC3",
898 "DVEC4", "FVEC2", "FVEC3", "FVEC4", "SAMPLER2DRECT", "SAMPLER3DRECT",
899 "SAMPLER2DRECTSHADOW", "SIZEOF", "CAST", "NAMESPACE", "USING",
900 "ERROR_TOK", "COMMON", "PARTITION", "ACTIVE", "SAMPLERBUFFER", "FILTER",
901 "IMAGE1D", "IMAGE2D", "IMAGE3D", "IMAGECUBE", "IMAGE1DARRAY",
902 "IMAGE2DARRAY", "IIMAGE1D", "IIMAGE2D", "IIMAGE3D", "IIMAGECUBE",
903 "IIMAGE1DARRAY", "IIMAGE2DARRAY", "UIMAGE1D", "UIMAGE2D", "UIMAGE3D",
904 "UIMAGECUBE", "UIMAGE1DARRAY", "UIMAGE2DARRAY", "IMAGE1DSHADOW",
905 "IMAGE2DSHADOW", "IMAGEBUFFER", "IIMAGEBUFFER", "UIMAGEBUFFER",
906 "IMAGE1DARRAYSHADOW", "IMAGE2DARRAYSHADOW", "ROW_MAJOR", "'('", "')'",
907 "'['", "']'", "'.'", "','", "'+'", "'-'", "'!'", "'~'", "'*'", "'/'",
908 "'%'", "'<'", "'>'", "'&'", "'^'", "'|'", "'?'", "':'", "'='", "';'",
909 "'{'", "'}'", "$accept", "translation_unit", "$@1", "version_statement",
910 "pragma_statement", "extension_statement_list", "any_identifier",
911 "extension_statement", "external_declaration_list",
912 "variable_identifier", "primary_expression", "postfix_expression",
913 "integer_expression", "function_call", "function_call_or_method",
914 "function_call_generic", "function_call_header_no_parameters",
915 "function_call_header_with_parameters", "function_call_header",
916 "function_identifier", "method_call_generic",
917 "method_call_header_no_parameters", "method_call_header_with_parameters",
918 "method_call_header", "unary_expression", "unary_operator",
919 "multiplicative_expression", "additive_expression", "shift_expression",
920 "relational_expression", "equality_expression", "and_expression",
921 "exclusive_or_expression", "inclusive_or_expression",
922 "logical_and_expression", "logical_xor_expression",
923 "logical_or_expression", "conditional_expression",
924 "assignment_expression", "assignment_operator", "expression",
925 "constant_expression", "declaration", "function_prototype",
926 "function_declarator", "function_header_with_parameters",
927 "function_header", "parameter_declarator", "parameter_declaration",
928 "parameter_qualifier", "parameter_type_specifier",
929 "init_declarator_list", "single_declaration", "fully_specified_type",
930 "layout_qualifier", "layout_qualifier_id_list", "layout_qualifier_id",
931 "interpolation_qualifier", "parameter_type_qualifier", "type_qualifier",
932 "storage_qualifier", "type_specifier", "type_specifier_no_prec",
933 "type_specifier_nonarray", "basic_type_specifier_nonarray",
934 "precision_qualifier", "struct_specifier", "struct_declaration_list",
935 "struct_declaration", "struct_declarator_list", "struct_declarator",
936 "initializer", "declaration_statement", "statement", "simple_statement",
937 "compound_statement", "$@2", "statement_no_new_scope",
938 "compound_statement_no_new_scope", "statement_list",
939 "expression_statement", "selection_statement",
940 "selection_rest_statement", "condition", "switch_statement",
941 "switch_body", "case_label", "case_label_list", "case_statement",
942 "case_statement_list", "iteration_statement", "for_init_statement",
943 "conditionopt", "for_rest_statement", "jump_statement",
944 "external_declaration", "function_definition", 0
949 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
951 static const yytype_uint16 yytoknum
[] =
953 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
954 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
955 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
956 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
957 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
958 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
959 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
960 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
961 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
962 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
963 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
964 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
965 375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
966 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
967 395, 396, 397, 398, 399, 400, 401, 402, 403, 404,
968 405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
969 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
970 425, 426, 427, 428, 429, 430, 431, 432, 433, 434,
971 435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
972 445, 446, 447, 448, 449, 450, 451, 40, 41, 91,
973 93, 46, 44, 43, 45, 33, 126, 42, 47, 37,
974 60, 62, 38, 94, 124, 63, 58, 61, 59, 123,
979 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
980 static const yytype_uint16 yyr1
[] =
982 0, 221, 223, 222, 224, 224, 225, 225, 225, 225,
983 225, 226, 226, 227, 227, 227, 228, 229, 229, 230,
984 230, 231, 231, 231, 231, 231, 231, 232, 232, 232,
985 232, 232, 232, 233, 234, 235, 235, 236, 236, 237,
986 237, 238, 238, 239, 240, 240, 240, 241, 241, 242,
987 242, 243, 243, 244, 245, 245, 245, 245, 246, 246,
988 246, 246, 247, 247, 247, 247, 248, 248, 248, 249,
989 249, 249, 250, 250, 250, 250, 250, 251, 251, 251,
990 252, 252, 253, 253, 254, 254, 255, 255, 256, 256,
991 257, 257, 258, 258, 259, 259, 260, 260, 260, 260,
992 260, 260, 260, 260, 260, 260, 260, 261, 261, 262,
993 263, 263, 263, 264, 265, 265, 266, 266, 267, 268,
994 268, 269, 269, 269, 269, 270, 270, 270, 270, 271,
995 272, 272, 272, 272, 272, 272, 272, 273, 273, 273,
996 273, 273, 273, 273, 273, 274, 274, 275, 276, 276,
997 277, 277, 278, 278, 278, 279, 280, 280, 280, 280,
998 280, 280, 280, 280, 281, 281, 281, 281, 281, 281,
999 281, 281, 281, 282, 282, 283, 283, 283, 284, 284,
1000 284, 285, 285, 285, 285, 285, 285, 285, 285, 285,
1001 285, 285, 285, 285, 285, 285, 285, 285, 285, 285,
1002 285, 285, 285, 285, 285, 285, 285, 285, 285, 285,
1003 285, 285, 285, 285, 285, 285, 285, 285, 285, 285,
1004 285, 285, 285, 285, 285, 285, 285, 285, 285, 285,
1005 285, 285, 285, 286, 286, 286, 287, 287, 288, 288,
1006 289, 290, 290, 291, 291, 292, 293, 294, 294, 295,
1007 295, 295, 295, 295, 295, 296, 297, 296, 298, 298,
1008 299, 299, 300, 300, 301, 301, 302, 303, 303, 304,
1009 304, 305, 306, 306, 307, 307, 308, 308, 309, 309,
1010 310, 310, 311, 311, 311, 312, 312, 313, 313, 314,
1011 314, 315, 315, 315, 315, 315, 316, 316, 316, 317
1014 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
1015 static const yytype_uint8 yyr2
[] =
1017 0, 2, 0, 4, 0, 3, 2, 2, 2, 2,
1018 2, 0, 2, 1, 1, 1, 5, 1, 2, 1,
1019 1, 1, 1, 1, 1, 1, 3, 1, 4, 1,
1020 3, 2, 2, 1, 1, 1, 3, 2, 2, 2,
1021 1, 2, 3, 2, 1, 1, 1, 2, 2, 2,
1022 1, 2, 3, 2, 1, 2, 2, 2, 1, 1,
1023 1, 1, 1, 3, 3, 3, 1, 3, 3, 1,
1024 3, 3, 1, 3, 3, 3, 3, 1, 3, 3,
1025 1, 3, 1, 3, 1, 3, 1, 3, 1, 3,
1026 1, 3, 1, 5, 1, 3, 1, 1, 1, 1,
1027 1, 1, 1, 1, 1, 1, 1, 1, 3, 1,
1028 2, 2, 4, 2, 1, 1, 2, 3, 3, 2,
1029 5, 3, 2, 3, 2, 0, 1, 1, 1, 1,
1030 1, 3, 5, 6, 7, 8, 5, 1, 2, 4,
1031 5, 6, 7, 4, 2, 1, 2, 4, 1, 3,
1032 1, 3, 1, 1, 1, 1, 1, 1, 2, 1,
1033 2, 2, 3, 1, 1, 1, 1, 2, 1, 1,
1034 2, 2, 1, 1, 2, 1, 3, 4, 1, 1,
1035 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1036 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1037 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1038 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1039 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1040 1, 1, 1, 1, 1, 1, 5, 4, 1, 2,
1041 3, 1, 3, 1, 4, 1, 1, 1, 1, 1,
1042 1, 1, 1, 1, 1, 2, 0, 4, 1, 1,
1043 2, 3, 1, 2, 1, 2, 5, 3, 1, 1,
1044 4, 5, 2, 3, 3, 2, 1, 2, 2, 2,
1045 1, 2, 5, 7, 6, 1, 1, 1, 0, 2,
1046 3, 2, 2, 2, 3, 2, 1, 1, 1, 2
1049 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
1050 STATE-NUM when YYTABLE doesn't specify something else to do. Zero
1051 means the default is an error. */
1052 static const yytype_uint16 yydefact
[] =
1054 4, 0, 0, 11, 0, 1, 2, 5, 0, 0,
1055 12, 13, 14, 15, 0, 165, 164, 185, 182, 183,
1056 184, 189, 190, 191, 192, 193, 194, 195, 196, 197,
1057 186, 187, 188, 0, 168, 169, 172, 166, 154, 153,
1058 152, 198, 199, 200, 201, 202, 203, 204, 205, 206,
1059 207, 208, 210, 211, 213, 214, 216, 217, 218, 219,
1060 220, 221, 222, 223, 224, 225, 226, 227, 228, 229,
1061 230, 231, 232, 212, 0, 181, 180, 163, 235, 234,
1062 233, 0, 0, 0, 0, 0, 0, 0, 209, 215,
1063 298, 3, 297, 0, 0, 115, 125, 0, 130, 137,
1064 157, 159, 0, 156, 145, 173, 175, 178, 0, 179,
1065 17, 296, 0, 170, 171, 167, 0, 0, 19, 20,
1066 144, 0, 161, 0, 6, 7, 8, 9, 10, 0,
1067 18, 110, 0, 299, 113, 125, 155, 126, 127, 128,
1068 116, 0, 125, 0, 111, 13, 15, 138, 0, 158,
1069 160, 146, 0, 174, 0, 0, 0, 238, 0, 162,
1070 0, 150, 0, 148, 0, 0, 0, 0, 0, 0,
1071 0, 0, 0, 24, 22, 23, 25, 46, 0, 0,
1072 0, 58, 59, 60, 61, 264, 256, 260, 21, 27,
1073 54, 29, 34, 35, 0, 0, 40, 0, 62, 0,
1074 66, 69, 72, 77, 80, 82, 84, 86, 88, 90,
1075 92, 94, 107, 0, 246, 0, 145, 249, 262, 248,
1076 247, 0, 250, 251, 252, 253, 254, 117, 122, 124,
1077 129, 0, 131, 0, 0, 118, 176, 62, 109, 0,
1078 44, 16, 243, 0, 241, 237, 239, 0, 112, 0,
1079 147, 0, 292, 291, 0, 0, 0, 295, 293, 0,
1080 0, 0, 55, 56, 0, 255, 0, 31, 32, 0,
1081 0, 38, 37, 0, 181, 41, 43, 97, 98, 100,
1082 99, 102, 103, 104, 105, 106, 101, 96, 0, 57,
1083 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1084 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1085 0, 265, 261, 263, 119, 121, 123, 0, 0, 139,
1086 0, 245, 143, 177, 0, 0, 240, 236, 151, 149,
1087 0, 286, 285, 288, 0, 294, 0, 163, 269, 0,
1088 0, 26, 0, 0, 33, 30, 0, 36, 0, 0,
1089 50, 42, 95, 63, 64, 65, 67, 68, 70, 71,
1090 75, 76, 73, 74, 78, 79, 81, 83, 85, 87,
1091 89, 91, 0, 108, 0, 132, 0, 136, 0, 140,
1092 0, 242, 0, 287, 0, 0, 0, 0, 0, 0,
1093 257, 28, 53, 48, 47, 0, 181, 51, 0, 0,
1094 0, 133, 141, 0, 244, 0, 289, 0, 268, 266,
1095 0, 271, 0, 259, 282, 258, 52, 93, 120, 134,
1096 0, 142, 0, 290, 284, 0, 0, 0, 272, 276,
1097 0, 280, 0, 270, 135, 283, 267, 0, 275, 278,
1098 277, 279, 273, 281, 274
1101 /* YYDEFGOTO[NTERM-NUM]. */
1102 static const yytype_int16 yydefgoto
[] =
1104 -1, 2, 9, 3, 90, 6, 161, 10, 91, 188,
1105 189, 190, 343, 191, 192, 193, 194, 195, 196, 197,
1106 347, 348, 349, 350, 198, 199, 200, 201, 202, 203,
1107 204, 205, 206, 207, 208, 209, 210, 211, 212, 288,
1108 213, 239, 214, 215, 94, 95, 96, 228, 140, 141,
1109 229, 97, 98, 99, 100, 162, 163, 101, 142, 102,
1110 103, 240, 105, 106, 107, 108, 109, 156, 157, 243,
1111 244, 322, 217, 218, 219, 220, 266, 414, 415, 221,
1112 222, 223, 409, 340, 224, 411, 429, 430, 431, 432,
1113 225, 333, 384, 385, 226, 110, 111
1116 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1118 #define YYPACT_NINF -355
1119 static const yytype_int16 yypact
[] =
1121 -38, -40, 81, -355, -32, -355, -27, -355, 52, 3587,
1122 -355, -355, -355, -355, -26, -355, -355, -355, -355, -355,
1123 -355, -355, -355, -355, -355, -355, -355, -355, -355, -355,
1124 -355, -355, -355, 38, -355, -355, -355, -355, -355, -355,
1125 -355, -355, -355, -355, -355, -355, -355, -355, -355, -355,
1126 -355, -355, -355, -355, -355, -355, -355, -355, -355, -355,
1127 -355, -355, -355, -355, -355, -355, -355, -355, -355, -355,
1128 -355, -355, -355, -355, -67, -355, -355, 251, -355, -355,
1129 -355, 51, -14, -8, 11, 19, 24, -87, -355, -355,
1130 -355, 3587, -355, -162, -107, -46, 15, -180, -355, 96,
1131 264, 264, 3707, -355, -355, -355, -57, -355, 3781, -355,
1132 -355, -355, 52, -355, -355, -355, 3707, -48, -355, -355,
1133 -355, 264, -355, 3781, -355, -355, -355, -355, -355, 52,
1134 -355, -355, 422, -355, -355, 29, -355, -355, -355, -355,
1135 -355, 3707, 143, 52, -355, -17, -12, -178, 18, -355,
1136 -355, -355, 2465, -355, 73, 52, 1834, -355, 3707, -355,
1137 3, 9, -168, -355, 10, 14, 1293, 30, 33, 17,
1138 2074, 40, 44, -355, -355, -355, -355, -355, 3026, 3026,
1139 3026, -355, -355, -355, -355, -355, -11, -355, 47, -355,
1140 -60, -355, -355, -355, 49, -125, 3213, 48, 16, 3026,
1141 -25, -138, 12, -66, 46, 37, 45, 36, 158, 164,
1142 -81, -355, -355, -171, -355, 35, 64, -355, -355, -355,
1143 -355, 640, -355, -355, -355, -355, -355, -355, -355, -355,
1144 52, 3707, -163, 2652, 3026, -355, -355, -355, -355, 65,
1145 -355, -355, 82, -160, -355, -355, -355, 1954, -355, 199,
1146 -355, 52, -355, -355, 210, 1714, 3026, -355, -355, -157,
1147 3026, 2278, -355, -355, -122, -355, 1293, -355, -355, 3026,
1148 96, -355, -355, 3026, 94, -355, -355, -355, -355, -355,
1149 -355, -355, -355, -355, -355, -355, -355, -355, 3026, -355,
1150 3026, 3026, 3026, 3026, 3026, 3026, 3026, 3026, 3026, 3026,
1151 3026, 3026, 3026, 3026, 3026, 3026, 3026, 3026, 3026, 3026,
1152 3026, -355, -355, -355, 95, -355, -355, 2839, 3026, 76,
1153 99, -355, -355, -355, 3026, 52, -355, -355, -355, -355,
1154 98, -355, -355, 2278, -115, -355, -102, 239, 100, 52,
1155 105, -355, 858, 104, 100, -355, 108, -355, 109, -76,
1156 3400, -355, -355, -355, -355, -355, -25, -25, -138, -138,
1157 12, 12, 12, 12, -66, -66, 46, 37, 45, 36,
1158 158, 164, -165, -355, 3026, 89, 110, -355, 3026, 91,
1159 111, -355, 3026, -355, 97, 114, 1293, 90, 102, 1510,
1160 -355, -355, -355, -355, -355, 3026, 115, -355, 3026, 116,
1161 3026, 103, -355, 3026, -355, -47, 3026, 1510, 302, -355,
1162 -10, -355, 3026, -355, -355, -355, -355, -355, -355, -355,
1163 3026, -355, 107, 100, -355, 1293, 3026, 101, -355, -355,
1164 1076, 1293, -2, -355, -355, -355, -355, -147, -355, -355,
1165 -355, -355, -355, 1293, -355
1168 /* YYPGOTO[NTERM-NUM]. */
1169 static const yytype_int16 yypgoto
[] =
1171 -355, -355, -355, -355, -355, -355, -7, -355, -355, -59,
1172 -355, -355, -355, -355, -355, -355, -355, -355, -355, -355,
1173 -355, -355, -355, -355, -100, -355, -106, -127, -134, -82,
1174 20, 22, 26, 21, 27, 13, -355, -145, -164, -355,
1175 -166, -213, -6, 34, -355, -355, -355, 106, 187, 193,
1176 112, -355, -355, -232, -355, -355, 78, -71, -355, -355,
1177 -75, -9, -64, -355, -355, 255, -355, 180, -141, -355,
1178 23, -250, 84, -161, -354, -355, -355, -65, 247, 75,
1179 92, -355, -355, 25, -355, -355, -86, -355, -83, -355,
1180 -355, -355, -355, -355, -355, 254, -355
1183 /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
1184 positive, shift that token. If negative, reduce the rule which
1185 number is the opposite. If zero, do what YYDEFACT says.
1186 If YYTABLE_NINF, syntax error. */
1187 #define YYTABLE_NINF -115
1188 static const yytype_int16 yytable
[] =
1190 104, 14, 122, 92, 259, 254, 121, 238, 426, 427,
1191 11, 12, 13, 308, 264, 246, 426, 427, 120, 136,
1192 320, 233, 143, 297, 298, 149, 150, 267, 268, 339,
1193 250, 310, 275, 136, 251, 413, 317, 310, 144, 234,
1194 148, 4, 325, 93, 153, 310, 159, 311, 137, 138,
1195 139, 398, 237, 413, 318, 310, 131, 132, 326, 160,
1196 313, 335, 137, 138, 139, 293, 294, 117, 377, 444,
1197 321, 113, 114, 272, 1, 115, 341, 273, 262, 263,
1198 310, 5, 104, 386, 7, 92, 8, 310, 238, 112,
1199 334, 134, 147, 151, 336, 338, 387, 295, 296, 289,
1200 310, 339, 124, 344, 376, 154, 246, 155, 125, 351,
1201 129, 380, 277, 278, 279, 280, 281, 282, 283, 284,
1202 285, 286, 394, 216, 352, 93, 395, 126, 402, 11,
1203 12, 13, 230, 237, 309, 127, 232, 301, 302, 269,
1204 128, 270, 152, 372, 299, 300, 373, 155, 242, 155,
1205 419, 422, 116, 421, 321, 310, 135, 216, 78, 79,
1206 80, 399, 433, 360, 361, 362, 363, 338, 358, 359,
1207 434, 158, 238, 145, 12, 146, 137, 138, 139, 238,
1208 -19, 313, 290, 291, 292, -20, 397, 356, 357, 241,
1209 353, 354, 355, 237, 237, 237, 237, 237, 237, 237,
1210 237, 237, 237, 237, 237, 237, 237, 237, 237, 265,
1211 428, 346, 216, -114, 321, 235, 405, 237, 442, 364,
1212 365, 248, 230, 314, 237, 408, 249, 255, 252, 238,
1213 256, 416, 253, 287, 417, 257, 321, 260, 155, 321,
1214 423, 261, 15, 16, -45, 276, 216, 271, 321, 303,
1215 305, 306, 216, 131, 15, 16, 321, 216, 304, 307,
1216 437, -44, 122, 345, 436, 323, 121, 15, 16, 439,
1217 441, 33, 34, 35, 237, 36, 37, 38, 39, 40,
1218 328, 324, 441, 33, 34, 35, 330, 36, 37, 38,
1219 39, 40, -39, 378, 374, 382, 33, 34, 35, 379,
1220 36, 37, 310, 389, 391, 392, 400, 393, 403, 410,
1221 401, 404, 407, -49, 425, 406, 418, 438, 242, 412,
1222 420, 371, 227, 366, 216, 435, 367, 369, 118, 329,
1223 119, 368, 388, 216, 370, 231, 123, 315, 247, 331,
1224 133, 342, 424, 316, 440, 130, 0, 332, 381, 443,
1225 0, 0, 0, 0, 0, 0, 0, 0, 383, 0,
1226 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1227 0, 0, 0, 0, 0, 0, 0, 216, 0, 0,
1228 216, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1229 0, 0, 0, 0, 0, 0, 0, 0, 216, 0,
1230 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1231 0, 0, 0, 0, 0, 0, 216, 0, 0, 0,
1232 0, 216, 216, 0, 0, 15, 16, 17, 18, 19,
1233 20, 164, 165, 166, 216, 167, 168, 169, 170, 171,
1234 0, 0, 21, 22, 23, 24, 25, 26, 27, 28,
1235 29, 30, 31, 32, 33, 34, 35, 0, 36, 37,
1236 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1237 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1238 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1239 68, 69, 70, 71, 72, 73, 74, 75, 172, 118,
1240 76, 119, 173, 174, 175, 176, 177, 0, 0, 178,
1241 179, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1242 0, 0, 0, 0, 0, 0, 0, 0, 77, 78,
1243 79, 80, 0, 81, 0, 0, 0, 0, 0, 0,
1244 0, 0, 0, 0, 0, 0, 87, 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, 0, 0, 0, 0, 0, 0, 0, 0,
1248 88, 0, 89, 0, 0, 0, 0, 0, 0, 0,
1249 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1250 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1251 0, 0, 0, 0, 0, 0, 0, 0, 0, 180,
1252 0, 0, 0, 0, 0, 181, 182, 183, 184, 0,
1253 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1254 185, 186, 187, 15, 16, 17, 18, 19, 20, 164,
1255 165, 166, 0, 167, 168, 169, 170, 171, 0, 0,
1256 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
1257 31, 32, 33, 34, 35, 0, 36, 37, 38, 39,
1258 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1259 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1260 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1261 70, 71, 72, 73, 74, 75, 172, 118, 76, 119,
1262 173, 174, 175, 176, 177, 0, 0, 178, 179, 0,
1263 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1264 0, 0, 0, 0, 0, 0, 77, 78, 79, 80,
1265 0, 81, 0, 0, 0, 0, 0, 0, 0, 0,
1266 0, 0, 0, 0, 87, 0, 0, 0, 0, 0,
1267 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1268 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1269 0, 0, 0, 0, 0, 0, 0, 0, 88, 0,
1270 89, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1271 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1272 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1273 0, 0, 0, 0, 0, 0, 0, 180, 0, 0,
1274 0, 0, 0, 181, 182, 183, 184, 0, 0, 0,
1275 0, 0, 0, 0, 0, 0, 0, 0, 185, 186,
1276 312, 15, 16, 17, 18, 19, 20, 164, 165, 166,
1277 0, 167, 168, 169, 170, 171, 0, 0, 21, 22,
1278 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
1279 33, 34, 35, 0, 36, 37, 38, 39, 40, 41,
1280 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1281 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1282 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1283 72, 73, 74, 75, 172, 118, 76, 119, 173, 174,
1284 175, 176, 177, 0, 0, 178, 179, 0, 0, 0,
1285 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1286 0, 0, 0, 0, 77, 78, 79, 80, 0, 81,
1287 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1288 0, 0, 87, 0, 0, 0, 0, 0, 0, 0,
1289 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1290 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1291 0, 0, 0, 0, 0, 0, 88, 0, 89, 0,
1292 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1293 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1294 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1295 0, 0, 0, 0, 0, 180, 0, 0, 0, 0,
1296 0, 181, 182, 183, 184, 0, 0, 0, 0, 0,
1297 0, 0, 0, 0, 0, 0, 185, 186, 390, 15,
1298 16, 17, 18, 19, 20, 164, 165, 166, 0, 167,
1299 168, 169, 170, 171, 426, 427, 21, 22, 23, 24,
1300 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1301 35, 0, 36, 37, 38, 39, 40, 41, 42, 43,
1302 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1303 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1304 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1305 74, 75, 172, 118, 76, 119, 173, 174, 175, 176,
1306 177, 0, 0, 178, 179, 0, 0, 0, 0, 0,
1307 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1308 0, 0, 77, 78, 79, 80, 0, 81, 0, 0,
1309 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1310 87, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1311 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1312 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1313 0, 0, 0, 0, 88, 0, 89, 0, 0, 0,
1314 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1315 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1316 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1317 0, 0, 0, 180, 0, 0, 0, 0, 0, 181,
1318 182, 183, 184, 0, 0, 0, 0, 0, 0, 0,
1319 0, 0, 0, 0, 185, 186, 15, 16, 17, 18,
1320 19, 20, 164, 165, 166, 0, 167, 168, 169, 170,
1321 171, 0, 0, 21, 22, 23, 24, 25, 26, 27,
1322 28, 29, 30, 31, 32, 33, 34, 35, 0, 36,
1323 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
1324 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1325 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1326 67, 68, 69, 70, 71, 72, 73, 74, 75, 172,
1327 118, 76, 119, 173, 174, 175, 176, 177, 0, 0,
1328 178, 179, 0, 0, 0, 0, 0, 0, 0, 0,
1329 0, 0, 0, 0, 0, 0, 0, 0, 0, 77,
1330 78, 79, 80, 0, 81, 0, 0, 0, 0, 0,
1331 0, 0, 0, 0, 0, 0, 0, 87, 0, 0,
1332 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1333 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1334 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1335 0, 88, 0, 89, 0, 0, 0, 0, 0, 0,
1336 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1337 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1338 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1339 180, 0, 0, 0, 0, 0, 181, 182, 183, 184,
1340 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1341 0, 185, 186, 15, 16, 17, 18, 19, 20, 164,
1342 165, 166, 0, 167, 168, 169, 170, 171, 0, 0,
1343 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
1344 31, 32, 33, 34, 35, 0, 36, 37, 38, 39,
1345 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1346 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1347 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1348 70, 71, 72, 73, 74, 75, 172, 118, 76, 119,
1349 173, 174, 175, 176, 177, 0, 0, 178, 179, 0,
1350 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1351 0, 0, 0, 0, 0, 0, 77, 78, 79, 80,
1352 0, 81, 0, 0, 0, 0, 0, 0, 0, 0,
1353 0, 0, 0, 0, 87, 0, 0, 0, 0, 0,
1354 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1355 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1356 0, 0, 0, 0, 0, 0, 0, 0, 88, 0,
1357 89, 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, 180, 0, 0,
1361 0, 0, 0, 181, 182, 183, 184, 15, 16, 17,
1362 18, 19, 20, 0, 0, 0, 0, 0, 185, 132,
1363 0, 0, 0, 0, 21, 22, 23, 24, 25, 26,
1364 27, 28, 29, 30, 31, 32, 33, 34, 35, 0,
1365 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
1366 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1367 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1368 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1369 0, 118, 76, 119, 173, 174, 175, 176, 177, 0,
1370 0, 178, 179, 0, 0, 0, 0, 0, 0, 0,
1371 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1372 77, 78, 79, 80, 0, 81, 0, 0, 0, 0,
1373 0, 0, 0, 0, 0, 0, 0, 0, 87, 17,
1374 18, 19, 20, 0, 0, 0, 0, 0, 0, 0,
1375 0, 0, 0, 0, 21, 22, 23, 24, 25, 26,
1376 27, 28, 29, 30, 31, 32, 0, 0, 0, 0,
1377 0, 0, 88, 0, 89, 41, 42, 43, 44, 45,
1378 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1379 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1380 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1381 0, 180, 76, 0, 0, 0, 0, 181, 182, 183,
1382 184, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1383 0, 0, 185, 0, 0, 0, 0, 0, 0, 0,
1384 0, 78, 79, 80, 0, 0, 0, 0, 0, 0,
1385 0, 0, 0, 0, 0, 0, 0, 0, 0, 17,
1386 18, 19, 20, 0, 0, 0, 0, 0, 0, 0,
1387 0, 0, 0, 0, 21, 22, 23, 24, 25, 26,
1388 27, 28, 29, 30, 31, 32, 0, 0, 0, 0,
1389 0, 0, 88, 0, 89, 41, 42, 43, 44, 45,
1390 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1391 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1392 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1393 0, 0, 76, 0, 0, 0, 0, 0, 0, 0,
1394 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1395 0, 0, 0, 0, 245, 0, 0, 0, 0, 0,
1396 0, 78, 79, 80, 0, 0, 0, 0, 0, 0,
1397 0, 0, 0, 0, 0, 0, 0, 0, 0, 17,
1398 18, 19, 20, 0, 0, 0, 0, 0, 0, 0,
1399 0, 0, 0, 0, 21, 22, 23, 24, 25, 26,
1400 27, 28, 29, 30, 31, 32, 0, 0, 0, 0,
1401 0, 0, 88, 0, 89, 41, 42, 43, 44, 45,
1402 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1403 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1404 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1405 0, 118, 76, 119, 173, 174, 175, 176, 177, 0,
1406 0, 178, 179, 0, 0, 0, 0, 0, 0, 0,
1407 0, 0, 0, 0, 327, 0, 0, 0, 0, 0,
1408 0, 78, 79, 80, 0, 0, 0, 0, 0, 0,
1409 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1410 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1411 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1412 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1413 0, 0, 88, 0, 89, 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, 180, 0, 0, 0, 0, 0, 181, 182, 183,
1418 184, 15, 16, 17, 18, 19, 20, 0, 0, 0,
1419 0, 0, 258, 0, 0, 0, 0, 0, 21, 22,
1420 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
1421 33, 34, 35, 0, 36, 37, 38, 39, 40, 41,
1422 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1423 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1424 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1425 72, 73, 74, 75, 0, 118, 76, 119, 173, 174,
1426 175, 176, 177, 0, 0, 178, 179, 0, 0, 0,
1427 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1428 0, 0, 0, 0, 337, 78, 79, 80, 0, 0,
1429 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1430 0, 0, 87, 0, 0, 0, 0, 0, 0, 0,
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, 88, 0, 89, 0,
1434 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1435 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1436 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1437 17, 18, 19, 20, 0, 180, 0, 0, 0, 0,
1438 0, 181, 182, 183, 184, 21, 22, 23, 24, 25,
1439 26, 27, 28, 29, 30, 31, 32, 0, 0, 0,
1440 0, 0, 0, 0, 0, 0, 41, 42, 43, 44,
1441 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1442 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1443 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1444 75, 0, 118, 76, 119, 173, 174, 175, 176, 177,
1445 0, 0, 178, 179, 0, 0, 0, 0, 0, 0,
1446 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1447 0, 0, 78, 79, 80, 0, 0, 0, 0, 0,
1448 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1449 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1450 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1451 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1452 0, 0, 0, 88, 0, 89, 0, 0, 0, 0,
1453 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1454 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1455 0, 0, 0, 0, 0, 0, 0, 17, 18, 19,
1456 20, 0, 180, 0, 0, 236, 0, 0, 181, 182,
1457 183, 184, 21, 22, 23, 24, 25, 26, 27, 28,
1458 29, 30, 31, 32, 0, 0, 0, 0, 0, 0,
1459 0, 0, 0, 41, 42, 43, 44, 45, 46, 47,
1460 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1461 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1462 68, 69, 70, 71, 72, 73, 74, 75, 0, 118,
1463 76, 119, 173, 174, 175, 176, 177, 0, 0, 178,
1464 179, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1465 0, 0, 0, 0, 0, 0, 0, 0, 0, 78,
1466 79, 80, 0, 0, 0, 0, 0, 0, 0, 0,
1467 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1468 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1469 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1470 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1471 88, 0, 89, 0, 0, 0, 0, 0, 0, 0,
1472 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1473 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1474 0, 0, 0, 0, 17, 18, 19, 20, 0, 180,
1475 0, 0, 319, 0, 0, 181, 182, 183, 184, 21,
1476 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
1477 32, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1478 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1479 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1480 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1481 71, 72, 73, 74, 75, 0, 118, 76, 119, 173,
1482 174, 175, 176, 177, 0, 0, 178, 179, 0, 0,
1483 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1484 0, 0, 0, 0, 0, 0, 78, 79, 80, 0,
1485 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1486 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1487 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1488 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1489 0, 0, 0, 0, 0, 0, 0, 88, 0, 89,
1490 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1491 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1492 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1493 0, 17, 18, 19, 20, 0, 180, 0, 0, 375,
1494 0, 0, 181, 182, 183, 184, 21, 22, 23, 24,
1495 25, 26, 27, 28, 29, 30, 31, 32, 0, 0,
1496 0, 0, 0, 0, 0, 0, 0, 41, 42, 43,
1497 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1498 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1499 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1500 74, 75, 0, 118, 76, 119, 173, 174, 175, 176,
1501 177, 0, 0, 178, 179, 0, 0, 0, 0, 0,
1502 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1503 0, 0, 0, 78, 79, 80, 0, 0, 0, 0,
1504 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1505 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1506 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1507 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1508 0, 0, 0, 0, 88, 0, 89, 0, 0, 0,
1509 0, 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, 17, 18,
1512 19, 20, 0, 180, 0, 0, 0, 0, 0, 181,
1513 182, 183, 184, 21, 22, 23, 24, 25, 26, 27,
1514 28, 29, 30, 31, 32, 0, 0, 0, 0, 0,
1515 0, 0, 0, 0, 41, 42, 43, 44, 45, 46,
1516 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1517 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1518 67, 68, 69, 70, 71, 72, 73, 74, 274, 0,
1519 118, 76, 119, 173, 174, 175, 176, 177, 0, 0,
1520 178, 179, 0, 0, 0, 0, 0, 0, 0, 0,
1521 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1522 78, 79, 80, 0, 0, 0, 0, 0, 0, 0,
1523 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1524 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1525 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1526 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1527 0, 88, 0, 89, 0, 0, 0, 0, 0, 0,
1528 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1529 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1530 0, 0, 0, 0, 0, 17, 18, 19, 20, 0,
1531 180, 0, 0, 0, 0, 0, 181, 182, 183, 184,
1532 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
1533 31, 32, 0, 0, 0, 0, 0, 0, 0, 0,
1534 0, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1535 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1536 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1537 70, 71, 72, 73, 74, 396, 0, 118, 76, 119,
1538 173, 174, 175, 176, 177, 0, 0, 178, 179, 0,
1539 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1540 0, 0, 0, 0, 0, 0, 0, 78, 79, 80,
1541 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1542 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1543 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1544 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1545 0, 0, 0, 0, 0, 0, 0, 0, 88, 0,
1546 89, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1547 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1548 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1549 15, 16, 17, 18, 19, 20, 0, 180, 0, 0,
1550 0, 0, 0, 181, 182, 183, 184, 21, 22, 23,
1551 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
1552 34, 35, 0, 36, 37, 38, 39, 40, 41, 42,
1553 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1554 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1555 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
1556 73, 74, 75, 0, 0, 76, 0, 0, 0, 0,
1557 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1558 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1559 0, 0, 0, 77, 78, 79, 80, 0, 81, 0,
1560 0, 0, 0, 0, 0, 0, 82, 83, 84, 85,
1561 86, 87, 17, 18, 19, 20, 0, 0, 0, 0,
1562 0, 0, 0, 0, 0, 0, 0, 21, 22, 23,
1563 24, 25, 26, 27, 28, 29, 30, 31, 32, 0,
1564 0, 0, 0, 0, 0, 88, 0, 89, 41, 42,
1565 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1566 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1567 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
1568 73, 74, 75, 0, 0, 76, 17, 18, 19, 20,
1569 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1570 0, 21, 22, 23, 24, 25, 26, 27, 28, 29,
1571 30, 31, 32, 0, 78, 79, 80, 0, 0, 0,
1572 0, 0, 41, 42, 43, 44, 45, 46, 47, 48,
1573 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1574 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1575 69, 70, 71, 72, 73, 74, 75, 0, 0, 76,
1576 0, 0, 0, 0, 0, 88, 0, 89, 0, 0,
1577 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1578 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1579 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1580 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1581 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1582 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1583 0, 0, 0, 0, 0, 0, 0, 0, 0, 88,
1587 static const yytype_int16 yycheck
[] =
1589 9, 8, 77, 9, 170, 166, 77, 152, 18, 19,
1590 77, 78, 79, 94, 180, 156, 18, 19, 77, 4,
1591 233, 199, 202, 89, 90, 100, 101, 87, 88, 261,
1592 198, 202, 196, 4, 202, 389, 199, 202, 218, 217,
1593 99, 81, 202, 9, 108, 202, 121, 218, 33, 34,
1594 35, 216, 152, 407, 217, 202, 218, 219, 218, 123,
1595 221, 218, 33, 34, 35, 203, 204, 74, 318, 216,
1596 234, 33, 34, 198, 112, 37, 198, 202, 178, 179,
1597 202, 0, 91, 198, 116, 91, 113, 202, 233, 115,
1598 256, 198, 99, 102, 260, 261, 198, 85, 86, 199,
1599 202, 333, 116, 269, 317, 112, 247, 116, 116, 273,
1600 197, 324, 96, 97, 98, 99, 100, 101, 102, 103,
1601 104, 105, 198, 132, 288, 91, 202, 116, 378, 77,
1602 78, 79, 141, 233, 215, 116, 143, 91, 92, 199,
1603 116, 201, 199, 309, 210, 211, 310, 156, 155, 158,
1604 400, 198, 219, 403, 318, 202, 202, 166, 107, 108,
1605 109, 374, 412, 297, 298, 299, 300, 333, 295, 296,
1606 420, 219, 317, 77, 78, 79, 33, 34, 35, 324,
1607 197, 342, 207, 208, 209, 197, 350, 293, 294, 116,
1608 290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
1609 300, 301, 302, 303, 304, 305, 306, 307, 308, 220,
1610 220, 270, 221, 198, 378, 197, 382, 317, 220, 301,
1611 302, 218, 231, 230, 324, 386, 217, 197, 218, 374,
1612 197, 395, 218, 217, 398, 218, 400, 197, 247, 403,
1613 406, 197, 3, 4, 197, 197, 255, 198, 412, 212,
1614 214, 93, 261, 218, 3, 4, 420, 266, 213, 95,
1615 426, 197, 337, 270, 425, 200, 337, 3, 4, 430,
1616 431, 32, 33, 34, 374, 36, 37, 38, 39, 40,
1617 81, 199, 443, 32, 33, 34, 76, 36, 37, 38,
1618 39, 40, 198, 217, 199, 197, 32, 33, 34, 200,
1619 36, 37, 202, 198, 200, 197, 217, 198, 217, 219,
1620 200, 200, 198, 198, 12, 218, 200, 216, 325, 217,
1621 217, 308, 135, 303, 333, 218, 304, 306, 77, 251,
1622 79, 305, 339, 342, 307, 142, 81, 231, 158, 255,
1623 93, 266, 407, 231, 430, 91, -1, 255, 325, 432,
1624 -1, -1, -1, -1, -1, -1, -1, -1, 333, -1,
1625 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1626 -1, -1, -1, -1, -1, -1, -1, 386, -1, -1,
1627 389, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1628 -1, -1, -1, -1, -1, -1, -1, -1, 407, -1,
1629 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1630 -1, -1, -1, -1, -1, -1, 425, -1, -1, -1,
1631 -1, 430, 431, -1, -1, 3, 4, 5, 6, 7,
1632 8, 9, 10, 11, 443, 13, 14, 15, 16, 17,
1633 -1, -1, 20, 21, 22, 23, 24, 25, 26, 27,
1634 28, 29, 30, 31, 32, 33, 34, -1, 36, 37,
1635 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1636 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1637 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1638 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
1639 78, 79, 80, 81, 82, 83, 84, -1, -1, 87,
1640 88, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1641 -1, -1, -1, -1, -1, -1, -1, -1, 106, 107,
1642 108, 109, -1, 111, -1, -1, -1, -1, -1, -1,
1643 -1, -1, -1, -1, -1, -1, 124, -1, -1, -1,
1644 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1645 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1646 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1647 158, -1, 160, -1, -1, -1, -1, -1, -1, -1,
1648 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1649 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1650 -1, -1, -1, -1, -1, -1, -1, -1, -1, 197,
1651 -1, -1, -1, -1, -1, 203, 204, 205, 206, -1,
1652 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1653 218, 219, 220, 3, 4, 5, 6, 7, 8, 9,
1654 10, 11, -1, 13, 14, 15, 16, 17, -1, -1,
1655 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
1656 30, 31, 32, 33, 34, -1, 36, 37, 38, 39,
1657 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1658 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1659 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1660 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
1661 80, 81, 82, 83, 84, -1, -1, 87, 88, -1,
1662 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1663 -1, -1, -1, -1, -1, -1, 106, 107, 108, 109,
1664 -1, 111, -1, -1, -1, -1, -1, -1, -1, -1,
1665 -1, -1, -1, -1, 124, -1, -1, -1, -1, -1,
1666 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1667 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1668 -1, -1, -1, -1, -1, -1, -1, -1, 158, -1,
1669 160, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1670 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1671 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1672 -1, -1, -1, -1, -1, -1, -1, 197, -1, -1,
1673 -1, -1, -1, 203, 204, 205, 206, -1, -1, -1,
1674 -1, -1, -1, -1, -1, -1, -1, -1, 218, 219,
1675 220, 3, 4, 5, 6, 7, 8, 9, 10, 11,
1676 -1, 13, 14, 15, 16, 17, -1, -1, 20, 21,
1677 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
1678 32, 33, 34, -1, 36, 37, 38, 39, 40, 41,
1679 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1680 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1681 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1682 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
1683 82, 83, 84, -1, -1, 87, 88, -1, -1, -1,
1684 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1685 -1, -1, -1, -1, 106, 107, 108, 109, -1, 111,
1686 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1687 -1, -1, 124, -1, -1, -1, -1, -1, -1, -1,
1688 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1689 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1690 -1, -1, -1, -1, -1, -1, 158, -1, 160, -1,
1691 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1692 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1693 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1694 -1, -1, -1, -1, -1, 197, -1, -1, -1, -1,
1695 -1, 203, 204, 205, 206, -1, -1, -1, -1, -1,
1696 -1, -1, -1, -1, -1, -1, 218, 219, 220, 3,
1697 4, 5, 6, 7, 8, 9, 10, 11, -1, 13,
1698 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
1699 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
1700 34, -1, 36, 37, 38, 39, 40, 41, 42, 43,
1701 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1702 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1703 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1704 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
1705 84, -1, -1, 87, 88, -1, -1, -1, -1, -1,
1706 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1707 -1, -1, 106, 107, 108, 109, -1, 111, -1, -1,
1708 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1709 124, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1710 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1711 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1712 -1, -1, -1, -1, 158, -1, 160, -1, -1, -1,
1713 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1714 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1715 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1716 -1, -1, -1, 197, -1, -1, -1, -1, -1, 203,
1717 204, 205, 206, -1, -1, -1, -1, -1, -1, -1,
1718 -1, -1, -1, -1, 218, 219, 3, 4, 5, 6,
1719 7, 8, 9, 10, 11, -1, 13, 14, 15, 16,
1720 17, -1, -1, 20, 21, 22, 23, 24, 25, 26,
1721 27, 28, 29, 30, 31, 32, 33, 34, -1, 36,
1722 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
1723 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1724 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1725 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1726 77, 78, 79, 80, 81, 82, 83, 84, -1, -1,
1727 87, 88, -1, -1, -1, -1, -1, -1, -1, -1,
1728 -1, -1, -1, -1, -1, -1, -1, -1, -1, 106,
1729 107, 108, 109, -1, 111, -1, -1, -1, -1, -1,
1730 -1, -1, -1, -1, -1, -1, -1, 124, -1, -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, 158, -1, 160, -1, -1, -1, -1, -1, -1,
1735 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1736 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1737 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1738 197, -1, -1, -1, -1, -1, 203, 204, 205, 206,
1739 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1740 -1, 218, 219, 3, 4, 5, 6, 7, 8, 9,
1741 10, 11, -1, 13, 14, 15, 16, 17, -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, 75, 76, 77, 78, 79,
1748 80, 81, 82, 83, 84, -1, -1, 87, 88, -1,
1749 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1750 -1, -1, -1, -1, -1, -1, 106, 107, 108, 109,
1751 -1, 111, -1, -1, -1, -1, -1, -1, -1, -1,
1752 -1, -1, -1, -1, 124, -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, -1, -1, -1, -1, 158, -1,
1756 160, -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, -1, -1, -1, -1,
1759 -1, -1, -1, -1, -1, -1, -1, 197, -1, -1,
1760 -1, -1, -1, 203, 204, 205, 206, 3, 4, 5,
1761 6, 7, 8, -1, -1, -1, -1, -1, 218, 219,
1762 -1, -1, -1, -1, 20, 21, 22, 23, 24, 25,
1763 26, 27, 28, 29, 30, 31, 32, 33, 34, -1,
1764 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
1765 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1766 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1767 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1768 -1, 77, 78, 79, 80, 81, 82, 83, 84, -1,
1769 -1, 87, 88, -1, -1, -1, -1, -1, -1, -1,
1770 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1771 106, 107, 108, 109, -1, 111, -1, -1, -1, -1,
1772 -1, -1, -1, -1, -1, -1, -1, -1, 124, 5,
1773 6, 7, 8, -1, -1, -1, -1, -1, -1, -1,
1774 -1, -1, -1, -1, 20, 21, 22, 23, 24, 25,
1775 26, 27, 28, 29, 30, 31, -1, -1, -1, -1,
1776 -1, -1, 158, -1, 160, 41, 42, 43, 44, 45,
1777 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1778 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1779 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1780 -1, 197, 78, -1, -1, -1, -1, 203, 204, 205,
1781 206, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1782 -1, -1, 218, -1, -1, -1, -1, -1, -1, -1,
1783 -1, 107, 108, 109, -1, -1, -1, -1, -1, -1,
1784 -1, -1, -1, -1, -1, -1, -1, -1, -1, 5,
1785 6, 7, 8, -1, -1, -1, -1, -1, -1, -1,
1786 -1, -1, -1, -1, 20, 21, 22, 23, 24, 25,
1787 26, 27, 28, 29, 30, 31, -1, -1, -1, -1,
1788 -1, -1, 158, -1, 160, 41, 42, 43, 44, 45,
1789 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1790 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1791 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1792 -1, -1, 78, -1, -1, -1, -1, -1, -1, -1,
1793 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1794 -1, -1, -1, -1, 220, -1, -1, -1, -1, -1,
1795 -1, 107, 108, 109, -1, -1, -1, -1, -1, -1,
1796 -1, -1, -1, -1, -1, -1, -1, -1, -1, 5,
1797 6, 7, 8, -1, -1, -1, -1, -1, -1, -1,
1798 -1, -1, -1, -1, 20, 21, 22, 23, 24, 25,
1799 26, 27, 28, 29, 30, 31, -1, -1, -1, -1,
1800 -1, -1, 158, -1, 160, 41, 42, 43, 44, 45,
1801 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1802 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1803 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1804 -1, 77, 78, 79, 80, 81, 82, 83, 84, -1,
1805 -1, 87, 88, -1, -1, -1, -1, -1, -1, -1,
1806 -1, -1, -1, -1, 220, -1, -1, -1, -1, -1,
1807 -1, 107, 108, 109, -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, -1, -1, -1,
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, 158, -1, 160, -1, -1, -1, -1, -1,
1813 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1814 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1815 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1816 -1, 197, -1, -1, -1, -1, -1, 203, 204, 205,
1817 206, 3, 4, 5, 6, 7, 8, -1, -1, -1,
1818 -1, -1, 218, -1, -1, -1, -1, -1, 20, 21,
1819 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
1820 32, 33, 34, -1, 36, 37, 38, 39, 40, 41,
1821 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1822 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1823 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1824 72, 73, 74, 75, -1, 77, 78, 79, 80, 81,
1825 82, 83, 84, -1, -1, 87, 88, -1, -1, -1,
1826 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1827 -1, -1, -1, -1, 106, 107, 108, 109, -1, -1,
1828 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1829 -1, -1, 124, -1, -1, -1, -1, -1, -1, -1,
1830 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1831 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1832 -1, -1, -1, -1, -1, -1, 158, -1, 160, -1,
1833 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1834 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1835 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1836 5, 6, 7, 8, -1, 197, -1, -1, -1, -1,
1837 -1, 203, 204, 205, 206, 20, 21, 22, 23, 24,
1838 25, 26, 27, 28, 29, 30, 31, -1, -1, -1,
1839 -1, -1, -1, -1, -1, -1, 41, 42, 43, 44,
1840 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1841 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1842 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1843 75, -1, 77, 78, 79, 80, 81, 82, 83, 84,
1844 -1, -1, 87, 88, -1, -1, -1, -1, -1, -1,
1845 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1846 -1, -1, 107, 108, 109, -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, -1,
1849 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1850 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1851 -1, -1, -1, 158, -1, 160, -1, -1, -1, -1,
1852 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1853 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1854 -1, -1, -1, -1, -1, -1, -1, 5, 6, 7,
1855 8, -1, 197, -1, -1, 200, -1, -1, 203, 204,
1856 205, 206, 20, 21, 22, 23, 24, 25, 26, 27,
1857 28, 29, 30, 31, -1, -1, -1, -1, -1, -1,
1858 -1, -1, -1, 41, 42, 43, 44, 45, 46, 47,
1859 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1860 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1861 68, 69, 70, 71, 72, 73, 74, 75, -1, 77,
1862 78, 79, 80, 81, 82, 83, 84, -1, -1, 87,
1863 88, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1864 -1, -1, -1, -1, -1, -1, -1, -1, -1, 107,
1865 108, 109, -1, -1, -1, -1, -1, -1, -1, -1,
1866 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1867 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1868 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1869 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1870 158, -1, 160, -1, -1, -1, -1, -1, -1, -1,
1871 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1872 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1873 -1, -1, -1, -1, 5, 6, 7, 8, -1, 197,
1874 -1, -1, 200, -1, -1, 203, 204, 205, 206, 20,
1875 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
1876 31, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1877 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1878 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1879 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1880 71, 72, 73, 74, 75, -1, 77, 78, 79, 80,
1881 81, 82, 83, 84, -1, -1, 87, 88, -1, -1,
1882 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1883 -1, -1, -1, -1, -1, -1, 107, 108, 109, -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, 158, -1, 160,
1889 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1890 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1891 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1892 -1, 5, 6, 7, 8, -1, 197, -1, -1, 200,
1893 -1, -1, 203, 204, 205, 206, 20, 21, 22, 23,
1894 24, 25, 26, 27, 28, 29, 30, 31, -1, -1,
1895 -1, -1, -1, -1, -1, -1, -1, 41, 42, 43,
1896 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1897 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1898 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1899 74, 75, -1, 77, 78, 79, 80, 81, 82, 83,
1900 84, -1, -1, 87, 88, -1, -1, -1, -1, -1,
1901 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1902 -1, -1, -1, 107, 108, 109, -1, -1, -1, -1,
1903 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1904 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1905 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1906 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1907 -1, -1, -1, -1, 158, -1, 160, -1, -1, -1,
1908 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1909 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1910 -1, -1, -1, -1, -1, -1, -1, -1, 5, 6,
1911 7, 8, -1, 197, -1, -1, -1, -1, -1, 203,
1912 204, 205, 206, 20, 21, 22, 23, 24, 25, 26,
1913 27, 28, 29, 30, 31, -1, -1, -1, -1, -1,
1914 -1, -1, -1, -1, 41, 42, 43, 44, 45, 46,
1915 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1916 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1917 67, 68, 69, 70, 71, 72, 73, 74, 75, -1,
1918 77, 78, 79, 80, 81, 82, 83, 84, -1, -1,
1919 87, 88, -1, -1, -1, -1, -1, -1, -1, -1,
1920 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1921 107, 108, 109, -1, -1, -1, -1, -1, -1, -1,
1922 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1923 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1924 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1925 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1926 -1, 158, -1, 160, -1, -1, -1, -1, -1, -1,
1927 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1928 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1929 -1, -1, -1, -1, -1, 5, 6, 7, 8, -1,
1930 197, -1, -1, -1, -1, -1, 203, 204, 205, 206,
1931 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
1932 30, 31, -1, -1, -1, -1, -1, -1, -1, -1,
1933 -1, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1934 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1935 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1936 70, 71, 72, 73, 74, 75, -1, 77, 78, 79,
1937 80, 81, 82, 83, 84, -1, -1, 87, 88, -1,
1938 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1939 -1, -1, -1, -1, -1, -1, -1, 107, 108, 109,
1940 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1941 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1942 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1943 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1944 -1, -1, -1, -1, -1, -1, -1, -1, 158, -1,
1945 160, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1946 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1947 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1948 3, 4, 5, 6, 7, 8, -1, 197, -1, -1,
1949 -1, -1, -1, 203, 204, 205, 206, 20, 21, 22,
1950 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
1951 33, 34, -1, 36, 37, 38, 39, 40, 41, 42,
1952 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1953 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1954 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
1955 73, 74, 75, -1, -1, 78, -1, -1, -1, -1,
1956 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1957 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1958 -1, -1, -1, 106, 107, 108, 109, -1, 111, -1,
1959 -1, -1, -1, -1, -1, -1, 119, 120, 121, 122,
1960 123, 124, 5, 6, 7, 8, -1, -1, -1, -1,
1961 -1, -1, -1, -1, -1, -1, -1, 20, 21, 22,
1962 23, 24, 25, 26, 27, 28, 29, 30, 31, -1,
1963 -1, -1, -1, -1, -1, 158, -1, 160, 41, 42,
1964 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1965 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1966 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
1967 73, 74, 75, -1, -1, 78, 5, 6, 7, 8,
1968 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1969 -1, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1970 29, 30, 31, -1, 107, 108, 109, -1, -1, -1,
1971 -1, -1, 41, 42, 43, 44, 45, 46, 47, 48,
1972 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1973 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1974 69, 70, 71, 72, 73, 74, 75, -1, -1, 78,
1975 -1, -1, -1, -1, -1, 158, -1, 160, -1, -1,
1976 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1977 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1978 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1979 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1980 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1981 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1982 -1, -1, -1, -1, -1, -1, -1, -1, -1, 158,
1986 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1987 symbol of state STATE-NUM. */
1988 static const yytype_uint16 yystos
[] =
1990 0, 112, 222, 224, 81, 0, 226, 116, 113, 223,
1991 228, 77, 78, 79, 227, 3, 4, 5, 6, 7,
1992 8, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1993 29, 30, 31, 32, 33, 34, 36, 37, 38, 39,
1994 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1995 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1996 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1997 70, 71, 72, 73, 74, 75, 78, 106, 107, 108,
1998 109, 111, 119, 120, 121, 122, 123, 124, 158, 160,
1999 225, 229, 263, 264, 265, 266, 267, 272, 273, 274,
2000 275, 278, 280, 281, 282, 283, 284, 285, 286, 287,
2001 316, 317, 115, 33, 34, 37, 219, 227, 77, 79,
2002 230, 278, 281, 286, 116, 116, 116, 116, 116, 197,
2003 316, 218, 219, 299, 198, 202, 4, 33, 34, 35,
2004 269, 270, 279, 202, 218, 77, 79, 227, 230, 281,
2005 281, 282, 199, 283, 227, 282, 288, 289, 219, 281,
2006 283, 227, 276, 277, 9, 10, 11, 13, 14, 15,
2007 16, 17, 76, 80, 81, 82, 83, 84, 87, 88,
2008 197, 203, 204, 205, 206, 218, 219, 220, 230, 231,
2009 232, 234, 235, 236, 237, 238, 239, 240, 245, 246,
2010 247, 248, 249, 250, 251, 252, 253, 254, 255, 256,
2011 257, 258, 259, 261, 263, 264, 282, 293, 294, 295,
2012 296, 300, 301, 302, 305, 311, 315, 269, 268, 271,
2013 282, 270, 227, 199, 217, 197, 200, 245, 258, 262,
2014 282, 116, 227, 290, 291, 220, 289, 288, 218, 217,
2015 198, 202, 218, 218, 294, 197, 197, 218, 218, 261,
2016 197, 197, 245, 245, 261, 220, 297, 87, 88, 199,
2017 201, 198, 198, 202, 75, 259, 197, 96, 97, 98,
2018 99, 100, 101, 102, 103, 104, 105, 217, 260, 245,
2019 207, 208, 209, 203, 204, 85, 86, 89, 90, 210,
2020 211, 91, 92, 212, 213, 214, 93, 95, 94, 215,
2021 202, 218, 220, 294, 227, 268, 271, 199, 217, 200,
2022 262, 259, 292, 200, 199, 202, 218, 220, 81, 277,
2023 76, 293, 301, 312, 261, 218, 261, 106, 261, 274,
2024 304, 198, 300, 233, 261, 227, 230, 241, 242, 243,
2025 244, 259, 259, 245, 245, 245, 247, 247, 248, 248,
2026 249, 249, 249, 249, 250, 250, 251, 252, 253, 254,
2027 255, 256, 261, 259, 199, 200, 262, 292, 217, 200,
2028 262, 291, 197, 304, 313, 314, 198, 198, 227, 198,
2029 220, 200, 197, 198, 198, 202, 75, 259, 216, 262,
2030 217, 200, 292, 217, 200, 261, 218, 198, 294, 303,
2031 219, 306, 217, 295, 298, 299, 259, 259, 200, 292,
2032 217, 292, 198, 261, 298, 12, 18, 19, 220, 307,
2033 308, 309, 310, 292, 292, 218, 294, 261, 216, 294,
2034 307, 294, 220, 309, 216
2037 #define yyerrok (yyerrstatus = 0)
2038 #define yyclearin (yychar = YYEMPTY)
2039 #define YYEMPTY (-2)
2042 #define YYACCEPT goto yyacceptlab
2043 #define YYABORT goto yyabortlab
2044 #define YYERROR goto yyerrorlab
2047 /* Like YYERROR except do call yyerror. This remains here temporarily
2048 to ease the transition to the new meaning of YYERROR, for GCC.
2049 Once GCC version 2 has supplanted version 1, this can go. However,
2050 YYFAIL appears to be in use. Nevertheless, it is formally deprecated
2051 in Bison 2.4.2's NEWS entry, where a plan to phase it out is
2054 #define YYFAIL goto yyerrlab
2056 /* This is here to suppress warnings from the GCC cpp's
2057 -Wunused-macros. Normally we don't worry about that warning, but
2058 some users do, and we want to make it easy for users to remove
2059 YYFAIL uses, which will produce warnings from Bison 2.5. */
2062 #define YYRECOVERING() (!!yyerrstatus)
2064 #define YYBACKUP(Token, Value) \
2066 if (yychar == YYEMPTY && yylen == 1) \
2070 yytoken = YYTRANSLATE (yychar); \
2076 yyerror (&yylloc, state, YY_("syntax error: cannot back up")); \
2083 #define YYERRCODE 256
2086 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
2087 If N is 0, then set CURRENT to the empty location which ends
2088 the previous symbol: RHS[0] (always defined). */
2090 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
2091 #ifndef YYLLOC_DEFAULT
2092 # define YYLLOC_DEFAULT(Current, Rhs, N) \
2096 (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
2097 (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
2098 (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
2099 (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
2103 (Current).first_line = (Current).last_line = \
2104 YYRHSLOC (Rhs, 0).last_line; \
2105 (Current).first_column = (Current).last_column = \
2106 YYRHSLOC (Rhs, 0).last_column; \
2112 /* YY_LOCATION_PRINT -- Print the location on the stream.
2113 This macro was not mandated originally: define only if we know
2114 we won't break user code: when these are the locations we know. */
2116 #ifndef YY_LOCATION_PRINT
2117 # if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
2118 # define YY_LOCATION_PRINT(File, Loc) \
2119 fprintf (File, "%d.%d-%d.%d", \
2120 (Loc).first_line, (Loc).first_column, \
2121 (Loc).last_line, (Loc).last_column)
2123 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2128 /* YYLEX -- calling `yylex' with the right arguments. */
2131 # define YYLEX yylex (&yylval, &yylloc, YYLEX_PARAM)
2133 # define YYLEX yylex (&yylval, &yylloc, scanner)
2136 /* Enable debugging if requested. */
2140 # include <stdio.h> /* INFRINGES ON USER NAME SPACE */
2141 # define YYFPRINTF fprintf
2144 # define YYDPRINTF(Args) \
2150 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
2154 YYFPRINTF (stderr, "%s ", Title); \
2155 yy_symbol_print (stderr, \
2156 Type, Value, Location, state); \
2157 YYFPRINTF (stderr, "\n"); \
2162 /*--------------------------------.
2163 | Print this symbol on YYOUTPUT. |
2164 `--------------------------------*/
2167 #if (defined __STDC__ || defined __C99__FUNC__ \
2168 || defined __cplusplus || defined _MSC_VER)
2170 yy_symbol_value_print (FILE *yyoutput
, int yytype
, YYSTYPE
const * const yyvaluep
, YYLTYPE
const * const yylocationp
, struct _mesa_glsl_parse_state
*state
)
2173 yy_symbol_value_print (yyoutput
, yytype
, yyvaluep
, yylocationp
, state
)
2176 YYSTYPE
const * const yyvaluep
;
2177 YYLTYPE
const * const yylocationp
;
2178 struct _mesa_glsl_parse_state
*state
;
2183 YYUSE (yylocationp
);
2186 if (yytype
< YYNTOKENS
)
2187 YYPRINT (yyoutput
, yytoknum
[yytype
], *yyvaluep
);
2199 /*--------------------------------.
2200 | Print this symbol on YYOUTPUT. |
2201 `--------------------------------*/
2203 #if (defined __STDC__ || defined __C99__FUNC__ \
2204 || defined __cplusplus || defined _MSC_VER)
2206 yy_symbol_print (FILE *yyoutput
, int yytype
, YYSTYPE
const * const yyvaluep
, YYLTYPE
const * const yylocationp
, struct _mesa_glsl_parse_state
*state
)
2209 yy_symbol_print (yyoutput
, yytype
, yyvaluep
, yylocationp
, state
)
2212 YYSTYPE
const * const yyvaluep
;
2213 YYLTYPE
const * const yylocationp
;
2214 struct _mesa_glsl_parse_state
*state
;
2217 if (yytype
< YYNTOKENS
)
2218 YYFPRINTF (yyoutput
, "token %s (", yytname
[yytype
]);
2220 YYFPRINTF (yyoutput
, "nterm %s (", yytname
[yytype
]);
2222 YY_LOCATION_PRINT (yyoutput
, *yylocationp
);
2223 YYFPRINTF (yyoutput
, ": ");
2224 yy_symbol_value_print (yyoutput
, yytype
, yyvaluep
, yylocationp
, state
);
2225 YYFPRINTF (yyoutput
, ")");
2228 /*------------------------------------------------------------------.
2229 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
2231 `------------------------------------------------------------------*/
2233 #if (defined __STDC__ || defined __C99__FUNC__ \
2234 || defined __cplusplus || defined _MSC_VER)
2236 yy_stack_print (yytype_int16
*yybottom
, yytype_int16
*yytop
)
2239 yy_stack_print (yybottom
, yytop
)
2240 yytype_int16
*yybottom
;
2241 yytype_int16
*yytop
;
2244 YYFPRINTF (stderr
, "Stack now");
2245 for (; yybottom
<= yytop
; yybottom
++)
2247 int yybot
= *yybottom
;
2248 YYFPRINTF (stderr
, " %d", yybot
);
2250 YYFPRINTF (stderr
, "\n");
2253 # define YY_STACK_PRINT(Bottom, Top) \
2256 yy_stack_print ((Bottom), (Top)); \
2260 /*------------------------------------------------.
2261 | Report that the YYRULE is going to be reduced. |
2262 `------------------------------------------------*/
2264 #if (defined __STDC__ || defined __C99__FUNC__ \
2265 || defined __cplusplus || defined _MSC_VER)
2267 yy_reduce_print (YYSTYPE
*yyvsp
, YYLTYPE
*yylsp
, int yyrule
, struct _mesa_glsl_parse_state
*state
)
2270 yy_reduce_print (yyvsp
, yylsp
, yyrule
, state
)
2274 struct _mesa_glsl_parse_state
*state
;
2277 int yynrhs
= yyr2
[yyrule
];
2279 unsigned long int yylno
= yyrline
[yyrule
];
2280 YYFPRINTF (stderr
, "Reducing stack by rule %d (line %lu):\n",
2282 /* The symbols being reduced. */
2283 for (yyi
= 0; yyi
< yynrhs
; yyi
++)
2285 YYFPRINTF (stderr
, " $%d = ", yyi
+ 1);
2286 yy_symbol_print (stderr
, yyrhs
[yyprhs
[yyrule
] + yyi
],
2287 &(yyvsp
[(yyi
+ 1) - (yynrhs
)])
2288 , &(yylsp
[(yyi
+ 1) - (yynrhs
)]) , state
);
2289 YYFPRINTF (stderr
, "\n");
2293 # define YY_REDUCE_PRINT(Rule) \
2296 yy_reduce_print (yyvsp, yylsp, Rule, state); \
2299 /* Nonzero means print parse trace. It is left uninitialized so that
2300 multiple parsers can coexist. */
2302 #else /* !YYDEBUG */
2303 # define YYDPRINTF(Args)
2304 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
2305 # define YY_STACK_PRINT(Bottom, Top)
2306 # define YY_REDUCE_PRINT(Rule)
2307 #endif /* !YYDEBUG */
2310 /* YYINITDEPTH -- initial size of the parser's stacks. */
2312 # define YYINITDEPTH 200
2315 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
2316 if the built-in stack extension method is used).
2318 Do not make this value too large; the results are undefined if
2319 YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
2320 evaluated with infinite-precision integer arithmetic. */
2323 # define YYMAXDEPTH 10000
2331 # if defined __GLIBC__ && defined _STRING_H
2332 # define yystrlen strlen
2334 /* Return the length of YYSTR. */
2335 #if (defined __STDC__ || defined __C99__FUNC__ \
2336 || defined __cplusplus || defined _MSC_VER)
2338 yystrlen (const char *yystr
)
2346 for (yylen
= 0; yystr
[yylen
]; yylen
++)
2354 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
2355 # define yystpcpy stpcpy
2357 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
2359 #if (defined __STDC__ || defined __C99__FUNC__ \
2360 || defined __cplusplus || defined _MSC_VER)
2362 yystpcpy (char *yydest
, const char *yysrc
)
2365 yystpcpy (yydest
, yysrc
)
2371 const char *yys
= yysrc
;
2373 while ((*yyd
++ = *yys
++) != '\0')
2382 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
2383 quotes and backslashes, so that it's suitable for yyerror. The
2384 heuristic is that double-quoting is unnecessary unless the string
2385 contains an apostrophe, a comma, or backslash (other than
2386 backslash-backslash). YYSTR is taken from yytname. If YYRES is
2387 null, do not copy; instead, return the length of what the result
2390 yytnamerr (char *yyres
, const char *yystr
)
2395 char const *yyp
= yystr
;
2402 goto do_not_strip_quotes
;
2406 goto do_not_strip_quotes
;
2419 do_not_strip_quotes
: ;
2423 return yystrlen (yystr
);
2425 return yystpcpy (yyres
, yystr
) - yyres
;
2429 /* Copy into YYRESULT an error message about the unexpected token
2430 YYCHAR while in state YYSTATE. Return the number of bytes copied,
2431 including the terminating null byte. If YYRESULT is null, do not
2432 copy anything; just return the number of bytes that would be
2433 copied. As a special case, return 0 if an ordinary "syntax error"
2434 message will do. Return YYSIZE_MAXIMUM if overflow occurs during
2435 size calculation. */
2437 yysyntax_error (char *yyresult
, int yystate
, int yychar
)
2439 int yyn
= yypact
[yystate
];
2441 if (! (YYPACT_NINF
< yyn
&& yyn
<= YYLAST
))
2445 int yytype
= YYTRANSLATE (yychar
);
2446 YYSIZE_T yysize0
= yytnamerr (0, yytname
[yytype
]);
2447 YYSIZE_T yysize
= yysize0
;
2449 int yysize_overflow
= 0;
2450 enum { YYERROR_VERBOSE_ARGS_MAXIMUM
= 5 };
2451 char const *yyarg
[YYERROR_VERBOSE_ARGS_MAXIMUM
];
2455 /* This is so xgettext sees the translatable formats that are
2456 constructed on the fly. */
2457 YY_("syntax error, unexpected %s");
2458 YY_("syntax error, unexpected %s, expecting %s");
2459 YY_("syntax error, unexpected %s, expecting %s or %s");
2460 YY_("syntax error, unexpected %s, expecting %s or %s or %s");
2461 YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
2465 static char const yyunexpected
[] = "syntax error, unexpected %s";
2466 static char const yyexpecting
[] = ", expecting %s";
2467 static char const yyor
[] = " or %s";
2468 char yyformat
[sizeof yyunexpected
2469 + sizeof yyexpecting
- 1
2470 + ((YYERROR_VERBOSE_ARGS_MAXIMUM
- 2)
2471 * (sizeof yyor
- 1))];
2472 char const *yyprefix
= yyexpecting
;
2474 /* Start YYX at -YYN if negative to avoid negative indexes in
2476 int yyxbegin
= yyn
< 0 ? -yyn
: 0;
2478 /* Stay within bounds of both yycheck and yytname. */
2479 int yychecklim
= YYLAST
- yyn
+ 1;
2480 int yyxend
= yychecklim
< YYNTOKENS
? yychecklim
: YYNTOKENS
;
2483 yyarg
[0] = yytname
[yytype
];
2484 yyfmt
= yystpcpy (yyformat
, yyunexpected
);
2486 for (yyx
= yyxbegin
; yyx
< yyxend
; ++yyx
)
2487 if (yycheck
[yyx
+ yyn
] == yyx
&& yyx
!= YYTERROR
)
2489 if (yycount
== YYERROR_VERBOSE_ARGS_MAXIMUM
)
2493 yyformat
[sizeof yyunexpected
- 1] = '\0';
2496 yyarg
[yycount
++] = yytname
[yyx
];
2497 yysize1
= yysize
+ yytnamerr (0, yytname
[yyx
]);
2498 yysize_overflow
|= (yysize1
< yysize
);
2500 yyfmt
= yystpcpy (yyfmt
, yyprefix
);
2504 yyf
= YY_(yyformat
);
2505 yysize1
= yysize
+ yystrlen (yyf
);
2506 yysize_overflow
|= (yysize1
< yysize
);
2509 if (yysize_overflow
)
2510 return YYSIZE_MAXIMUM
;
2514 /* Avoid sprintf, as that infringes on the user's name space.
2515 Don't have undefined behavior even if the translation
2516 produced a string with the wrong number of "%s"s. */
2517 char *yyp
= yyresult
;
2519 while ((*yyp
= *yyf
) != '\0')
2521 if (*yyp
== '%' && yyf
[1] == 's' && yyi
< yycount
)
2523 yyp
+= yytnamerr (yyp
, yyarg
[yyi
++]);
2536 #endif /* YYERROR_VERBOSE */
2539 /*-----------------------------------------------.
2540 | Release the memory associated to this symbol. |
2541 `-----------------------------------------------*/
2544 #if (defined __STDC__ || defined __C99__FUNC__ \
2545 || defined __cplusplus || defined _MSC_VER)
2547 yydestruct (const char *yymsg
, int yytype
, YYSTYPE
*yyvaluep
, YYLTYPE
*yylocationp
, struct _mesa_glsl_parse_state
*state
)
2550 yydestruct (yymsg
, yytype
, yyvaluep
, yylocationp
, state
)
2554 YYLTYPE
*yylocationp
;
2555 struct _mesa_glsl_parse_state
*state
;
2559 YYUSE (yylocationp
);
2564 YY_SYMBOL_PRINT (yymsg
, yytype
, yyvaluep
, yylocationp
);
2574 /* Prevent warnings from -Wmissing-prototypes. */
2575 #ifdef YYPARSE_PARAM
2576 #if defined __STDC__ || defined __cplusplus
2577 int yyparse (void *YYPARSE_PARAM
);
2581 #else /* ! YYPARSE_PARAM */
2582 #if defined __STDC__ || defined __cplusplus
2583 int yyparse (struct _mesa_glsl_parse_state
*state
);
2587 #endif /* ! YYPARSE_PARAM */
2593 /*-------------------------.
2594 | yyparse or yypush_parse. |
2595 `-------------------------*/
2597 #ifdef YYPARSE_PARAM
2598 #if (defined __STDC__ || defined __C99__FUNC__ \
2599 || defined __cplusplus || defined _MSC_VER)
2601 yyparse (void *YYPARSE_PARAM
)
2604 yyparse (YYPARSE_PARAM
)
2605 void *YYPARSE_PARAM
;
2607 #else /* ! YYPARSE_PARAM */
2608 #if (defined __STDC__ || defined __C99__FUNC__ \
2609 || defined __cplusplus || defined _MSC_VER)
2611 yyparse (struct _mesa_glsl_parse_state
*state
)
2615 struct _mesa_glsl_parse_state
*state
;
2619 /* The lookahead symbol. */
2622 /* The semantic value of the lookahead symbol. */
2625 /* Location data for the lookahead symbol. */
2628 /* Number of syntax errors so far. */
2632 /* Number of tokens to shift before error messages enabled. */
2635 /* The stacks and their tools:
2636 `yyss': related to states.
2637 `yyvs': related to semantic values.
2638 `yyls': related to locations.
2640 Refer to the stacks thru separate pointers, to allow yyoverflow
2641 to reallocate them elsewhere. */
2643 /* The state stack. */
2644 yytype_int16 yyssa
[YYINITDEPTH
];
2646 yytype_int16
*yyssp
;
2648 /* The semantic value stack. */
2649 YYSTYPE yyvsa
[YYINITDEPTH
];
2653 /* The location stack. */
2654 YYLTYPE yylsa
[YYINITDEPTH
];
2658 /* The locations where the error started and ended. */
2659 YYLTYPE yyerror_range
[3];
2661 YYSIZE_T yystacksize
;
2665 /* Lookahead token as an internal (translated) token number. */
2667 /* The variables used to return semantic value and location from the
2673 /* Buffer for error messages, and its allocated size. */
2675 char *yymsg
= yymsgbuf
;
2676 YYSIZE_T yymsg_alloc
= sizeof yymsgbuf
;
2679 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N), yylsp -= (N))
2681 /* The number of symbols on the RHS of the reduced rule.
2682 Keep to zero when no symbol should be popped. */
2689 yystacksize
= YYINITDEPTH
;
2691 YYDPRINTF ((stderr
, "Starting parse\n"));
2696 yychar
= YYEMPTY
; /* Cause a token to be read. */
2698 /* Initialize stack pointers.
2699 Waste one element of value and location stack
2700 so that they stay on the same level as the state stack.
2701 The wasted elements are never initialized. */
2706 #if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
2707 /* Initialize the default location before parsing starts. */
2708 yylloc
.first_line
= yylloc
.last_line
= 1;
2709 yylloc
.first_column
= yylloc
.last_column
= 1;
2712 /* User initialization code. */
2714 /* Line 1251 of yacc.c */
2715 #line 47 "glsl_parser.yy"
2717 yylloc
.first_line
= 1;
2718 yylloc
.first_column
= 1;
2719 yylloc
.last_line
= 1;
2720 yylloc
.last_column
= 1;
2724 /* Line 1251 of yacc.c */
2725 #line 2726 "glsl_parser.cpp"
2730 /*------------------------------------------------------------.
2731 | yynewstate -- Push a new state, which is found in yystate. |
2732 `------------------------------------------------------------*/
2734 /* In all cases, when you get here, the value and location stacks
2735 have just been pushed. So pushing a state here evens the stacks. */
2741 if (yyss
+ yystacksize
- 1 <= yyssp
)
2743 /* Get the current used size of the three stacks, in elements. */
2744 YYSIZE_T yysize
= yyssp
- yyss
+ 1;
2748 /* Give user a chance to reallocate the stack. Use copies of
2749 these so that the &'s don't force the real ones into
2751 YYSTYPE
*yyvs1
= yyvs
;
2752 yytype_int16
*yyss1
= yyss
;
2753 YYLTYPE
*yyls1
= yyls
;
2755 /* Each stack pointer address is followed by the size of the
2756 data in use in that stack, in bytes. This used to be a
2757 conditional around just the two extra args, but that might
2758 be undefined if yyoverflow is a macro. */
2759 yyoverflow (YY_("memory exhausted"),
2760 &yyss1
, yysize
* sizeof (*yyssp
),
2761 &yyvs1
, yysize
* sizeof (*yyvsp
),
2762 &yyls1
, yysize
* sizeof (*yylsp
),
2769 #else /* no yyoverflow */
2770 # ifndef YYSTACK_RELOCATE
2771 goto yyexhaustedlab
;
2773 /* Extend the stack our own way. */
2774 if (YYMAXDEPTH
<= yystacksize
)
2775 goto yyexhaustedlab
;
2777 if (YYMAXDEPTH
< yystacksize
)
2778 yystacksize
= YYMAXDEPTH
;
2781 yytype_int16
*yyss1
= yyss
;
2782 union yyalloc
*yyptr
=
2783 (union yyalloc
*) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize
));
2785 goto yyexhaustedlab
;
2786 YYSTACK_RELOCATE (yyss_alloc
, yyss
);
2787 YYSTACK_RELOCATE (yyvs_alloc
, yyvs
);
2788 YYSTACK_RELOCATE (yyls_alloc
, yyls
);
2789 # undef YYSTACK_RELOCATE
2791 YYSTACK_FREE (yyss1
);
2794 #endif /* no yyoverflow */
2796 yyssp
= yyss
+ yysize
- 1;
2797 yyvsp
= yyvs
+ yysize
- 1;
2798 yylsp
= yyls
+ yysize
- 1;
2800 YYDPRINTF ((stderr
, "Stack size increased to %lu\n",
2801 (unsigned long int) yystacksize
));
2803 if (yyss
+ yystacksize
- 1 <= yyssp
)
2807 YYDPRINTF ((stderr
, "Entering state %d\n", yystate
));
2809 if (yystate
== YYFINAL
)
2819 /* Do appropriate processing given the current state. Read a
2820 lookahead token if we need one and don't already have one. */
2822 /* First try to decide what to do without reference to lookahead token. */
2823 yyn
= yypact
[yystate
];
2824 if (yyn
== YYPACT_NINF
)
2827 /* Not known => get a lookahead token if don't already have one. */
2829 /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
2830 if (yychar
== YYEMPTY
)
2832 YYDPRINTF ((stderr
, "Reading a token: "));
2836 if (yychar
<= YYEOF
)
2838 yychar
= yytoken
= YYEOF
;
2839 YYDPRINTF ((stderr
, "Now at end of input.\n"));
2843 yytoken
= YYTRANSLATE (yychar
);
2844 YY_SYMBOL_PRINT ("Next token is", yytoken
, &yylval
, &yylloc
);
2847 /* If the proper action on seeing token YYTOKEN is to reduce or to
2848 detect an error, take that action. */
2850 if (yyn
< 0 || YYLAST
< yyn
|| yycheck
[yyn
] != yytoken
)
2855 if (yyn
== 0 || yyn
== YYTABLE_NINF
)
2861 /* Count tokens shifted since error; after three, turn off error
2866 /* Shift the lookahead token. */
2867 YY_SYMBOL_PRINT ("Shifting", yytoken
, &yylval
, &yylloc
);
2869 /* Discard the shifted token. */
2878 /*-----------------------------------------------------------.
2879 | yydefault -- do the default action for the current state. |
2880 `-----------------------------------------------------------*/
2882 yyn
= yydefact
[yystate
];
2888 /*-----------------------------.
2889 | yyreduce -- Do a reduction. |
2890 `-----------------------------*/
2892 /* yyn is the number of a rule to reduce with. */
2895 /* If YYLEN is nonzero, implement the default value of the action:
2898 Otherwise, the following line sets YYVAL to garbage.
2899 This behavior is undocumented and Bison
2900 users should not rely upon it. Assigning to YYVAL
2901 unconditionally makes the parser a bit smaller, and it avoids a
2902 GCC warning that YYVAL may be used uninitialized. */
2903 yyval
= yyvsp
[1-yylen
];
2905 /* Default location. */
2906 YYLLOC_DEFAULT (yyloc
, (yylsp
- yylen
), yylen
);
2907 YY_REDUCE_PRINT (yyn
);
2912 /* Line 1464 of yacc.c */
2913 #line 236 "glsl_parser.yy"
2915 _mesa_glsl_initialize_types(state
);
2921 /* Line 1464 of yacc.c */
2922 #line 240 "glsl_parser.yy"
2924 delete state
->symbols
;
2925 state
->symbols
= new(ralloc_parent(state
)) glsl_symbol_table
;
2926 _mesa_glsl_initialize_types(state
);
2932 /* Line 1464 of yacc.c */
2933 #line 250 "glsl_parser.yy"
2935 bool supported
= false;
2937 switch ((yyvsp
[(2) - (3)].n
)) {
2939 state
->es_shader
= true;
2940 supported
= state
->Const
.GLSL_100ES
;
2943 supported
= state
->Const
.GLSL_110
;
2946 supported
= state
->Const
.GLSL_120
;
2949 supported
= state
->Const
.GLSL_130
;
2956 state
->language_version
= (yyvsp
[(2) - (3)].n
);
2957 state
->version_string
=
2958 ralloc_asprintf(state
, "GLSL%s %d.%02d",
2959 state
->es_shader
? " ES" : "",
2960 state
->language_version
/ 100,
2961 state
->language_version
% 100);
2964 _mesa_glsl_error(& (yylsp
[(2) - (3)]), state
, "%s is not supported. "
2965 "Supported versions are: %s\n",
2966 state
->version_string
,
2967 state
->supported_version_string
);
2974 /* Line 1464 of yacc.c */
2975 #line 294 "glsl_parser.yy"
2977 if (state
->language_version
< 120) {
2978 _mesa_glsl_warning(& (yylsp
[(1) - (2)]), state
,
2979 "pragma `invariant(all)' not supported in %s",
2980 state
->version_string
);
2982 state
->all_invariant
= true;
2989 /* Line 1464 of yacc.c */
2990 #line 318 "glsl_parser.yy"
2992 if (!_mesa_glsl_process_extension((yyvsp
[(2) - (5)].identifier
), & (yylsp
[(2) - (5)]), (yyvsp
[(4) - (5)].identifier
), & (yylsp
[(4) - (5)]), state
)) {
3000 /* Line 1464 of yacc.c */
3001 #line 327 "glsl_parser.yy"
3003 /* FINISHME: The NULL test is required because pragmas are set to
3004 * FINISHME: NULL. (See production rule for external_declaration.)
3006 if ((yyvsp
[(1) - (1)].node
) != NULL
)
3007 state
->translation_unit
.push_tail(& (yyvsp
[(1) - (1)].node
)->link
);
3013 /* Line 1464 of yacc.c */
3014 #line 335 "glsl_parser.yy"
3016 /* FINISHME: The NULL test is required because pragmas are set to
3017 * FINISHME: NULL. (See production rule for external_declaration.)
3019 if ((yyvsp
[(2) - (2)].node
) != NULL
)
3020 state
->translation_unit
.push_tail(& (yyvsp
[(2) - (2)].node
)->link
);
3026 /* Line 1464 of yacc.c */
3027 #line 351 "glsl_parser.yy"
3030 (yyval
.expression
) = new(ctx
) ast_expression(ast_identifier
, NULL
, NULL
, NULL
);
3031 (yyval
.expression
)->set_location(yylloc
);
3032 (yyval
.expression
)->primary_expression
.identifier
= (yyvsp
[(1) - (1)].identifier
);
3038 /* Line 1464 of yacc.c */
3039 #line 358 "glsl_parser.yy"
3042 (yyval
.expression
) = new(ctx
) ast_expression(ast_int_constant
, NULL
, NULL
, NULL
);
3043 (yyval
.expression
)->set_location(yylloc
);
3044 (yyval
.expression
)->primary_expression
.int_constant
= (yyvsp
[(1) - (1)].n
);
3050 /* Line 1464 of yacc.c */
3051 #line 365 "glsl_parser.yy"
3054 (yyval
.expression
) = new(ctx
) ast_expression(ast_uint_constant
, NULL
, NULL
, NULL
);
3055 (yyval
.expression
)->set_location(yylloc
);
3056 (yyval
.expression
)->primary_expression
.uint_constant
= (yyvsp
[(1) - (1)].n
);
3062 /* Line 1464 of yacc.c */
3063 #line 372 "glsl_parser.yy"
3066 (yyval
.expression
) = new(ctx
) ast_expression(ast_float_constant
, NULL
, NULL
, NULL
);
3067 (yyval
.expression
)->set_location(yylloc
);
3068 (yyval
.expression
)->primary_expression
.float_constant
= (yyvsp
[(1) - (1)].real
);
3074 /* Line 1464 of yacc.c */
3075 #line 379 "glsl_parser.yy"
3078 (yyval
.expression
) = new(ctx
) ast_expression(ast_bool_constant
, NULL
, NULL
, NULL
);
3079 (yyval
.expression
)->set_location(yylloc
);
3080 (yyval
.expression
)->primary_expression
.bool_constant
= (yyvsp
[(1) - (1)].n
);
3086 /* Line 1464 of yacc.c */
3087 #line 386 "glsl_parser.yy"
3089 (yyval
.expression
) = (yyvsp
[(2) - (3)].expression
);
3095 /* Line 1464 of yacc.c */
3096 #line 394 "glsl_parser.yy"
3099 (yyval
.expression
) = new(ctx
) ast_expression(ast_array_index
, (yyvsp
[(1) - (4)].expression
), (yyvsp
[(3) - (4)].expression
), NULL
);
3100 (yyval
.expression
)->set_location(yylloc
);
3106 /* Line 1464 of yacc.c */
3107 #line 400 "glsl_parser.yy"
3109 (yyval
.expression
) = (yyvsp
[(1) - (1)].expression
);
3115 /* Line 1464 of yacc.c */
3116 #line 404 "glsl_parser.yy"
3119 (yyval
.expression
) = new(ctx
) ast_expression(ast_field_selection
, (yyvsp
[(1) - (3)].expression
), NULL
, NULL
);
3120 (yyval
.expression
)->set_location(yylloc
);
3121 (yyval
.expression
)->primary_expression
.identifier
= (yyvsp
[(3) - (3)].identifier
);
3127 /* Line 1464 of yacc.c */
3128 #line 411 "glsl_parser.yy"
3131 (yyval
.expression
) = new(ctx
) ast_expression(ast_post_inc
, (yyvsp
[(1) - (2)].expression
), NULL
, NULL
);
3132 (yyval
.expression
)->set_location(yylloc
);
3138 /* Line 1464 of yacc.c */
3139 #line 417 "glsl_parser.yy"
3142 (yyval
.expression
) = new(ctx
) ast_expression(ast_post_dec
, (yyvsp
[(1) - (2)].expression
), NULL
, NULL
);
3143 (yyval
.expression
)->set_location(yylloc
);
3149 /* Line 1464 of yacc.c */
3150 #line 435 "glsl_parser.yy"
3153 (yyval
.expression
) = new(ctx
) ast_expression(ast_field_selection
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
), NULL
);
3154 (yyval
.expression
)->set_location(yylloc
);
3160 /* Line 1464 of yacc.c */
3161 #line 454 "glsl_parser.yy"
3163 (yyval
.expression
) = (yyvsp
[(1) - (2)].expression
);
3164 (yyval
.expression
)->set_location(yylloc
);
3165 (yyval
.expression
)->expressions
.push_tail(& (yyvsp
[(2) - (2)].expression
)->link
);
3171 /* Line 1464 of yacc.c */
3172 #line 460 "glsl_parser.yy"
3174 (yyval
.expression
) = (yyvsp
[(1) - (3)].expression
);
3175 (yyval
.expression
)->set_location(yylloc
);
3176 (yyval
.expression
)->expressions
.push_tail(& (yyvsp
[(3) - (3)].expression
)->link
);
3182 /* Line 1464 of yacc.c */
3183 #line 476 "glsl_parser.yy"
3186 (yyval
.expression
) = new(ctx
) ast_function_expression((yyvsp
[(1) - (1)].type_specifier
));
3187 (yyval
.expression
)->set_location(yylloc
);
3193 /* Line 1464 of yacc.c */
3194 #line 482 "glsl_parser.yy"
3197 ast_expression
*callee
= new(ctx
) ast_expression((yyvsp
[(1) - (1)].identifier
));
3198 (yyval
.expression
) = new(ctx
) ast_function_expression(callee
);
3199 (yyval
.expression
)->set_location(yylloc
);
3205 /* Line 1464 of yacc.c */
3206 #line 489 "glsl_parser.yy"
3209 ast_expression
*callee
= new(ctx
) ast_expression((yyvsp
[(1) - (1)].identifier
));
3210 (yyval
.expression
) = new(ctx
) ast_function_expression(callee
);
3211 (yyval
.expression
)->set_location(yylloc
);
3217 /* Line 1464 of yacc.c */
3218 #line 509 "glsl_parser.yy"
3220 (yyval
.expression
) = (yyvsp
[(1) - (2)].expression
);
3221 (yyval
.expression
)->set_location(yylloc
);
3222 (yyval
.expression
)->expressions
.push_tail(& (yyvsp
[(2) - (2)].expression
)->link
);
3228 /* Line 1464 of yacc.c */
3229 #line 515 "glsl_parser.yy"
3231 (yyval
.expression
) = (yyvsp
[(1) - (3)].expression
);
3232 (yyval
.expression
)->set_location(yylloc
);
3233 (yyval
.expression
)->expressions
.push_tail(& (yyvsp
[(3) - (3)].expression
)->link
);
3239 /* Line 1464 of yacc.c */
3240 #line 527 "glsl_parser.yy"
3243 ast_expression
*callee
= new(ctx
) ast_expression((yyvsp
[(1) - (2)].identifier
));
3244 (yyval
.expression
) = new(ctx
) ast_function_expression(callee
);
3245 (yyval
.expression
)->set_location(yylloc
);
3251 /* Line 1464 of yacc.c */
3252 #line 539 "glsl_parser.yy"
3255 (yyval
.expression
) = new(ctx
) ast_expression(ast_pre_inc
, (yyvsp
[(2) - (2)].expression
), NULL
, NULL
);
3256 (yyval
.expression
)->set_location(yylloc
);
3262 /* Line 1464 of yacc.c */
3263 #line 545 "glsl_parser.yy"
3266 (yyval
.expression
) = new(ctx
) ast_expression(ast_pre_dec
, (yyvsp
[(2) - (2)].expression
), NULL
, NULL
);
3267 (yyval
.expression
)->set_location(yylloc
);
3273 /* Line 1464 of yacc.c */
3274 #line 551 "glsl_parser.yy"
3277 (yyval
.expression
) = new(ctx
) ast_expression((yyvsp
[(1) - (2)].n
), (yyvsp
[(2) - (2)].expression
), NULL
, NULL
);
3278 (yyval
.expression
)->set_location(yylloc
);
3284 /* Line 1464 of yacc.c */
3285 #line 560 "glsl_parser.yy"
3286 { (yyval
.n
) = ast_plus
; ;}
3291 /* Line 1464 of yacc.c */
3292 #line 561 "glsl_parser.yy"
3293 { (yyval
.n
) = ast_neg
; ;}
3298 /* Line 1464 of yacc.c */
3299 #line 562 "glsl_parser.yy"
3300 { (yyval
.n
) = ast_logic_not
; ;}
3305 /* Line 1464 of yacc.c */
3306 #line 563 "glsl_parser.yy"
3307 { (yyval
.n
) = ast_bit_not
; ;}
3312 /* Line 1464 of yacc.c */
3313 #line 569 "glsl_parser.yy"
3316 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_mul
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3317 (yyval
.expression
)->set_location(yylloc
);
3323 /* Line 1464 of yacc.c */
3324 #line 575 "glsl_parser.yy"
3327 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_div
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3328 (yyval
.expression
)->set_location(yylloc
);
3334 /* Line 1464 of yacc.c */
3335 #line 581 "glsl_parser.yy"
3338 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_mod
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3339 (yyval
.expression
)->set_location(yylloc
);
3345 /* Line 1464 of yacc.c */
3346 #line 591 "glsl_parser.yy"
3349 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_add
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3350 (yyval
.expression
)->set_location(yylloc
);
3356 /* Line 1464 of yacc.c */
3357 #line 597 "glsl_parser.yy"
3360 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_sub
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3361 (yyval
.expression
)->set_location(yylloc
);
3367 /* Line 1464 of yacc.c */
3368 #line 607 "glsl_parser.yy"
3371 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_lshift
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3372 (yyval
.expression
)->set_location(yylloc
);
3378 /* Line 1464 of yacc.c */
3379 #line 613 "glsl_parser.yy"
3382 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_rshift
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3383 (yyval
.expression
)->set_location(yylloc
);
3389 /* Line 1464 of yacc.c */
3390 #line 623 "glsl_parser.yy"
3393 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_less
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3394 (yyval
.expression
)->set_location(yylloc
);
3400 /* Line 1464 of yacc.c */
3401 #line 629 "glsl_parser.yy"
3404 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_greater
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3405 (yyval
.expression
)->set_location(yylloc
);
3411 /* Line 1464 of yacc.c */
3412 #line 635 "glsl_parser.yy"
3415 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_lequal
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3416 (yyval
.expression
)->set_location(yylloc
);
3422 /* Line 1464 of yacc.c */
3423 #line 641 "glsl_parser.yy"
3426 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_gequal
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3427 (yyval
.expression
)->set_location(yylloc
);
3433 /* Line 1464 of yacc.c */
3434 #line 651 "glsl_parser.yy"
3437 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_equal
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3438 (yyval
.expression
)->set_location(yylloc
);
3444 /* Line 1464 of yacc.c */
3445 #line 657 "glsl_parser.yy"
3448 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_nequal
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3449 (yyval
.expression
)->set_location(yylloc
);
3455 /* Line 1464 of yacc.c */
3456 #line 667 "glsl_parser.yy"
3459 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_bit_and
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3460 (yyval
.expression
)->set_location(yylloc
);
3466 /* Line 1464 of yacc.c */
3467 #line 677 "glsl_parser.yy"
3470 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_bit_xor
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3471 (yyval
.expression
)->set_location(yylloc
);
3477 /* Line 1464 of yacc.c */
3478 #line 687 "glsl_parser.yy"
3481 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_bit_or
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3482 (yyval
.expression
)->set_location(yylloc
);
3488 /* Line 1464 of yacc.c */
3489 #line 697 "glsl_parser.yy"
3492 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_logic_and
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3493 (yyval
.expression
)->set_location(yylloc
);
3499 /* Line 1464 of yacc.c */
3500 #line 707 "glsl_parser.yy"
3503 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_logic_xor
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3504 (yyval
.expression
)->set_location(yylloc
);
3510 /* Line 1464 of yacc.c */
3511 #line 717 "glsl_parser.yy"
3514 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_logic_or
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3515 (yyval
.expression
)->set_location(yylloc
);
3521 /* Line 1464 of yacc.c */
3522 #line 727 "glsl_parser.yy"
3525 (yyval
.expression
) = new(ctx
) ast_expression(ast_conditional
, (yyvsp
[(1) - (5)].expression
), (yyvsp
[(3) - (5)].expression
), (yyvsp
[(5) - (5)].expression
));
3526 (yyval
.expression
)->set_location(yylloc
);
3532 /* Line 1464 of yacc.c */
3533 #line 737 "glsl_parser.yy"
3536 (yyval
.expression
) = new(ctx
) ast_expression((yyvsp
[(2) - (3)].n
), (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
), NULL
);
3537 (yyval
.expression
)->set_location(yylloc
);
3543 /* Line 1464 of yacc.c */
3544 #line 745 "glsl_parser.yy"
3545 { (yyval
.n
) = ast_assign
; ;}
3550 /* Line 1464 of yacc.c */
3551 #line 746 "glsl_parser.yy"
3552 { (yyval
.n
) = ast_mul_assign
; ;}
3557 /* Line 1464 of yacc.c */
3558 #line 747 "glsl_parser.yy"
3559 { (yyval
.n
) = ast_div_assign
; ;}
3564 /* Line 1464 of yacc.c */
3565 #line 748 "glsl_parser.yy"
3566 { (yyval
.n
) = ast_mod_assign
; ;}
3571 /* Line 1464 of yacc.c */
3572 #line 749 "glsl_parser.yy"
3573 { (yyval
.n
) = ast_add_assign
; ;}
3578 /* Line 1464 of yacc.c */
3579 #line 750 "glsl_parser.yy"
3580 { (yyval
.n
) = ast_sub_assign
; ;}
3585 /* Line 1464 of yacc.c */
3586 #line 751 "glsl_parser.yy"
3587 { (yyval
.n
) = ast_ls_assign
; ;}
3592 /* Line 1464 of yacc.c */
3593 #line 752 "glsl_parser.yy"
3594 { (yyval
.n
) = ast_rs_assign
; ;}
3599 /* Line 1464 of yacc.c */
3600 #line 753 "glsl_parser.yy"
3601 { (yyval
.n
) = ast_and_assign
; ;}
3606 /* Line 1464 of yacc.c */
3607 #line 754 "glsl_parser.yy"
3608 { (yyval
.n
) = ast_xor_assign
; ;}
3613 /* Line 1464 of yacc.c */
3614 #line 755 "glsl_parser.yy"
3615 { (yyval
.n
) = ast_or_assign
; ;}
3620 /* Line 1464 of yacc.c */
3621 #line 760 "glsl_parser.yy"
3623 (yyval
.expression
) = (yyvsp
[(1) - (1)].expression
);
3629 /* Line 1464 of yacc.c */
3630 #line 764 "glsl_parser.yy"
3633 if ((yyvsp
[(1) - (3)].expression
)->oper
!= ast_sequence
) {
3634 (yyval
.expression
) = new(ctx
) ast_expression(ast_sequence
, NULL
, NULL
, NULL
);
3635 (yyval
.expression
)->set_location(yylloc
);
3636 (yyval
.expression
)->expressions
.push_tail(& (yyvsp
[(1) - (3)].expression
)->link
);
3638 (yyval
.expression
) = (yyvsp
[(1) - (3)].expression
);
3641 (yyval
.expression
)->expressions
.push_tail(& (yyvsp
[(3) - (3)].expression
)->link
);
3647 /* Line 1464 of yacc.c */
3648 #line 784 "glsl_parser.yy"
3650 state
->symbols
->pop_scope();
3651 (yyval
.node
) = (yyvsp
[(1) - (2)].function
);
3657 /* Line 1464 of yacc.c */
3658 #line 789 "glsl_parser.yy"
3660 (yyval
.node
) = (yyvsp
[(1) - (2)].declarator_list
);
3666 /* Line 1464 of yacc.c */
3667 #line 793 "glsl_parser.yy"
3669 (yyvsp
[(3) - (4)].type_specifier
)->precision
= (yyvsp
[(2) - (4)].n
);
3670 (yyvsp
[(3) - (4)].type_specifier
)->is_precision_statement
= true;
3671 (yyval
.node
) = (yyvsp
[(3) - (4)].type_specifier
);
3677 /* Line 1464 of yacc.c */
3678 #line 811 "glsl_parser.yy"
3680 (yyval
.function
) = (yyvsp
[(1) - (2)].function
);
3681 (yyval
.function
)->parameters
.push_tail(& (yyvsp
[(2) - (2)].parameter_declarator
)->link
);
3687 /* Line 1464 of yacc.c */
3688 #line 816 "glsl_parser.yy"
3690 (yyval
.function
) = (yyvsp
[(1) - (3)].function
);
3691 (yyval
.function
)->parameters
.push_tail(& (yyvsp
[(3) - (3)].parameter_declarator
)->link
);
3697 /* Line 1464 of yacc.c */
3698 #line 824 "glsl_parser.yy"
3701 (yyval
.function
) = new(ctx
) ast_function();
3702 (yyval
.function
)->set_location(yylloc
);
3703 (yyval
.function
)->return_type
= (yyvsp
[(1) - (3)].fully_specified_type
);
3704 (yyval
.function
)->identifier
= (yyvsp
[(2) - (3)].identifier
);
3706 state
->symbols
->add_function(new(state
) ir_function((yyvsp
[(2) - (3)].identifier
)));
3707 state
->symbols
->push_scope();
3713 /* Line 1464 of yacc.c */
3714 #line 838 "glsl_parser.yy"
3717 (yyval
.parameter_declarator
) = new(ctx
) ast_parameter_declarator();
3718 (yyval
.parameter_declarator
)->set_location(yylloc
);
3719 (yyval
.parameter_declarator
)->type
= new(ctx
) ast_fully_specified_type();
3720 (yyval
.parameter_declarator
)->type
->set_location(yylloc
);
3721 (yyval
.parameter_declarator
)->type
->specifier
= (yyvsp
[(1) - (2)].type_specifier
);
3722 (yyval
.parameter_declarator
)->identifier
= (yyvsp
[(2) - (2)].identifier
);
3728 /* Line 1464 of yacc.c */
3729 #line 848 "glsl_parser.yy"
3732 (yyval
.parameter_declarator
) = new(ctx
) ast_parameter_declarator();
3733 (yyval
.parameter_declarator
)->set_location(yylloc
);
3734 (yyval
.parameter_declarator
)->type
= new(ctx
) ast_fully_specified_type();
3735 (yyval
.parameter_declarator
)->type
->set_location(yylloc
);
3736 (yyval
.parameter_declarator
)->type
->specifier
= (yyvsp
[(1) - (5)].type_specifier
);
3737 (yyval
.parameter_declarator
)->identifier
= (yyvsp
[(2) - (5)].identifier
);
3738 (yyval
.parameter_declarator
)->is_array
= true;
3739 (yyval
.parameter_declarator
)->array_size
= (yyvsp
[(4) - (5)].expression
);
3745 /* Line 1464 of yacc.c */
3746 #line 863 "glsl_parser.yy"
3748 (yyvsp
[(1) - (3)].type_qualifier
).flags
.i
|= (yyvsp
[(2) - (3)].type_qualifier
).flags
.i
;
3750 (yyval
.parameter_declarator
) = (yyvsp
[(3) - (3)].parameter_declarator
);
3751 (yyval
.parameter_declarator
)->type
->qualifier
= (yyvsp
[(1) - (3)].type_qualifier
);
3757 /* Line 1464 of yacc.c */
3758 #line 870 "glsl_parser.yy"
3760 (yyval
.parameter_declarator
) = (yyvsp
[(2) - (2)].parameter_declarator
);
3761 (yyval
.parameter_declarator
)->type
->qualifier
= (yyvsp
[(1) - (2)].type_qualifier
);
3767 /* Line 1464 of yacc.c */
3768 #line 875 "glsl_parser.yy"
3771 (yyvsp
[(1) - (3)].type_qualifier
).flags
.i
|= (yyvsp
[(2) - (3)].type_qualifier
).flags
.i
;
3773 (yyval
.parameter_declarator
) = new(ctx
) ast_parameter_declarator();
3774 (yyval
.parameter_declarator
)->set_location(yylloc
);
3775 (yyval
.parameter_declarator
)->type
= new(ctx
) ast_fully_specified_type();
3776 (yyval
.parameter_declarator
)->type
->qualifier
= (yyvsp
[(1) - (3)].type_qualifier
);
3777 (yyval
.parameter_declarator
)->type
->specifier
= (yyvsp
[(3) - (3)].type_specifier
);
3783 /* Line 1464 of yacc.c */
3784 #line 886 "glsl_parser.yy"
3787 (yyval
.parameter_declarator
) = new(ctx
) ast_parameter_declarator();
3788 (yyval
.parameter_declarator
)->set_location(yylloc
);
3789 (yyval
.parameter_declarator
)->type
= new(ctx
) ast_fully_specified_type();
3790 (yyval
.parameter_declarator
)->type
->qualifier
= (yyvsp
[(1) - (2)].type_qualifier
);
3791 (yyval
.parameter_declarator
)->type
->specifier
= (yyvsp
[(2) - (2)].type_specifier
);
3797 /* Line 1464 of yacc.c */
3798 #line 898 "glsl_parser.yy"
3800 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
3806 /* Line 1464 of yacc.c */
3807 #line 902 "glsl_parser.yy"
3809 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
3810 (yyval
.type_qualifier
).flags
.q
.in
= 1;
3816 /* Line 1464 of yacc.c */
3817 #line 907 "glsl_parser.yy"
3819 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
3820 (yyval
.type_qualifier
).flags
.q
.out
= 1;
3826 /* Line 1464 of yacc.c */
3827 #line 912 "glsl_parser.yy"
3829 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
3830 (yyval
.type_qualifier
).flags
.q
.in
= 1;
3831 (yyval
.type_qualifier
).flags
.q
.out
= 1;
3837 /* Line 1464 of yacc.c */
3838 #line 926 "glsl_parser.yy"
3841 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(3) - (3)].identifier
), false, NULL
, NULL
);
3842 decl
->set_location(yylloc
);
3844 (yyval
.declarator_list
) = (yyvsp
[(1) - (3)].declarator_list
);
3845 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3846 state
->symbols
->add_variable(new(state
) ir_variable(NULL
, (yyvsp
[(3) - (3)].identifier
), ir_var_auto
));
3852 /* Line 1464 of yacc.c */
3853 #line 936 "glsl_parser.yy"
3856 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(3) - (5)].identifier
), true, NULL
, NULL
);
3857 decl
->set_location(yylloc
);
3859 (yyval
.declarator_list
) = (yyvsp
[(1) - (5)].declarator_list
);
3860 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3861 state
->symbols
->add_variable(new(state
) ir_variable(NULL
, (yyvsp
[(3) - (5)].identifier
), ir_var_auto
));
3867 /* Line 1464 of yacc.c */
3868 #line 946 "glsl_parser.yy"
3871 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(3) - (6)].identifier
), true, (yyvsp
[(5) - (6)].expression
), NULL
);
3872 decl
->set_location(yylloc
);
3874 (yyval
.declarator_list
) = (yyvsp
[(1) - (6)].declarator_list
);
3875 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3876 state
->symbols
->add_variable(new(state
) ir_variable(NULL
, (yyvsp
[(3) - (6)].identifier
), ir_var_auto
));
3882 /* Line 1464 of yacc.c */
3883 #line 956 "glsl_parser.yy"
3886 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(3) - (7)].identifier
), true, NULL
, (yyvsp
[(7) - (7)].expression
));
3887 decl
->set_location(yylloc
);
3889 (yyval
.declarator_list
) = (yyvsp
[(1) - (7)].declarator_list
);
3890 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3891 state
->symbols
->add_variable(new(state
) ir_variable(NULL
, (yyvsp
[(3) - (7)].identifier
), ir_var_auto
));
3897 /* Line 1464 of yacc.c */
3898 #line 966 "glsl_parser.yy"
3901 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(3) - (8)].identifier
), true, (yyvsp
[(5) - (8)].expression
), (yyvsp
[(8) - (8)].expression
));
3902 decl
->set_location(yylloc
);
3904 (yyval
.declarator_list
) = (yyvsp
[(1) - (8)].declarator_list
);
3905 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3906 state
->symbols
->add_variable(new(state
) ir_variable(NULL
, (yyvsp
[(3) - (8)].identifier
), ir_var_auto
));
3912 /* Line 1464 of yacc.c */
3913 #line 976 "glsl_parser.yy"
3916 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(3) - (5)].identifier
), false, NULL
, (yyvsp
[(5) - (5)].expression
));
3917 decl
->set_location(yylloc
);
3919 (yyval
.declarator_list
) = (yyvsp
[(1) - (5)].declarator_list
);
3920 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3921 state
->symbols
->add_variable(new(state
) ir_variable(NULL
, (yyvsp
[(3) - (5)].identifier
), ir_var_auto
));
3927 /* Line 1464 of yacc.c */
3928 #line 990 "glsl_parser.yy"
3931 /* Empty declaration list is valid. */
3932 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list((yyvsp
[(1) - (1)].fully_specified_type
));
3933 (yyval
.declarator_list
)->set_location(yylloc
);
3939 /* Line 1464 of yacc.c */
3940 #line 997 "glsl_parser.yy"
3943 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(2) - (2)].identifier
), false, NULL
, NULL
);
3945 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list((yyvsp
[(1) - (2)].fully_specified_type
));
3946 (yyval
.declarator_list
)->set_location(yylloc
);
3947 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3953 /* Line 1464 of yacc.c */
3954 #line 1006 "glsl_parser.yy"
3957 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(2) - (4)].identifier
), true, NULL
, NULL
);
3959 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list((yyvsp
[(1) - (4)].fully_specified_type
));
3960 (yyval
.declarator_list
)->set_location(yylloc
);
3961 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3967 /* Line 1464 of yacc.c */
3968 #line 1015 "glsl_parser.yy"
3971 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(2) - (5)].identifier
), true, (yyvsp
[(4) - (5)].expression
), NULL
);
3973 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list((yyvsp
[(1) - (5)].fully_specified_type
));
3974 (yyval
.declarator_list
)->set_location(yylloc
);
3975 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3981 /* Line 1464 of yacc.c */
3982 #line 1024 "glsl_parser.yy"
3985 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(2) - (6)].identifier
), true, NULL
, (yyvsp
[(6) - (6)].expression
));
3987 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list((yyvsp
[(1) - (6)].fully_specified_type
));
3988 (yyval
.declarator_list
)->set_location(yylloc
);
3989 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3995 /* Line 1464 of yacc.c */
3996 #line 1033 "glsl_parser.yy"
3999 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(2) - (7)].identifier
), true, (yyvsp
[(4) - (7)].expression
), (yyvsp
[(7) - (7)].expression
));
4001 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list((yyvsp
[(1) - (7)].fully_specified_type
));
4002 (yyval
.declarator_list
)->set_location(yylloc
);
4003 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
4009 /* Line 1464 of yacc.c */
4010 #line 1042 "glsl_parser.yy"
4013 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(2) - (4)].identifier
), false, NULL
, (yyvsp
[(4) - (4)].expression
));
4015 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list((yyvsp
[(1) - (4)].fully_specified_type
));
4016 (yyval
.declarator_list
)->set_location(yylloc
);
4017 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
4023 /* Line 1464 of yacc.c */
4024 #line 1051 "glsl_parser.yy"
4027 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(2) - (2)].identifier
), false, NULL
, NULL
);
4029 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list(NULL
);
4030 (yyval
.declarator_list
)->set_location(yylloc
);
4031 (yyval
.declarator_list
)->invariant
= true;
4033 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
4039 /* Line 1464 of yacc.c */
4040 #line 1065 "glsl_parser.yy"
4043 (yyval
.fully_specified_type
) = new(ctx
) ast_fully_specified_type();
4044 (yyval
.fully_specified_type
)->set_location(yylloc
);
4045 (yyval
.fully_specified_type
)->specifier
= (yyvsp
[(1) - (1)].type_specifier
);
4051 /* Line 1464 of yacc.c */
4052 #line 1072 "glsl_parser.yy"
4055 (yyval
.fully_specified_type
) = new(ctx
) ast_fully_specified_type();
4056 (yyval
.fully_specified_type
)->set_location(yylloc
);
4057 (yyval
.fully_specified_type
)->qualifier
= (yyvsp
[(1) - (2)].type_qualifier
);
4058 (yyval
.fully_specified_type
)->specifier
= (yyvsp
[(2) - (2)].type_specifier
);
4064 /* Line 1464 of yacc.c */
4065 #line 1083 "glsl_parser.yy"
4067 (yyval
.type_qualifier
) = (yyvsp
[(3) - (4)].type_qualifier
);
4073 /* Line 1464 of yacc.c */
4074 #line 1091 "glsl_parser.yy"
4076 if (((yyvsp
[(1) - (3)].type_qualifier
).flags
.i
& (yyvsp
[(3) - (3)].type_qualifier
).flags
.i
) != 0) {
4077 _mesa_glsl_error(& (yylsp
[(3) - (3)]), state
,
4078 "duplicate layout qualifiers used\n");
4082 (yyval
.type_qualifier
).flags
.i
= (yyvsp
[(1) - (3)].type_qualifier
).flags
.i
| (yyvsp
[(3) - (3)].type_qualifier
).flags
.i
;
4084 if ((yyvsp
[(1) - (3)].type_qualifier
).flags
.q
.explicit_location
)
4085 (yyval
.type_qualifier
).location
= (yyvsp
[(1) - (3)].type_qualifier
).location
;
4087 if ((yyvsp
[(3) - (3)].type_qualifier
).flags
.q
.explicit_location
)
4088 (yyval
.type_qualifier
).location
= (yyvsp
[(3) - (3)].type_qualifier
).location
;
4094 /* Line 1464 of yacc.c */
4095 #line 1110 "glsl_parser.yy"
4097 bool got_one
= false;
4099 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
4101 /* Layout qualifiers for ARB_fragment_coord_conventions. */
4102 if (!got_one
&& state
->ARB_fragment_coord_conventions_enable
) {
4103 if (strcmp((yyvsp
[(1) - (1)].identifier
), "origin_upper_left") == 0) {
4105 (yyval
.type_qualifier
).flags
.q
.origin_upper_left
= 1;
4106 } else if (strcmp((yyvsp
[(1) - (1)].identifier
), "pixel_center_integer") == 0) {
4108 (yyval
.type_qualifier
).flags
.q
.pixel_center_integer
= 1;
4111 if (got_one
&& state
->ARB_fragment_coord_conventions_warn
) {
4112 _mesa_glsl_warning(& (yylsp
[(1) - (1)]), state
,
4113 "GL_ARB_fragment_coord_conventions layout "
4114 "identifier `%s' used\n", (yyvsp
[(1) - (1)].identifier
));
4118 /* Layout qualifiers for AMD/ARB_conservative_depth. */
4120 (state
->AMD_conservative_depth_enable
||
4121 state
->ARB_conservative_depth_enable
)) {
4122 if (strcmp((yyvsp
[(1) - (1)].identifier
), "depth_any") == 0) {
4124 (yyval
.type_qualifier
).flags
.q
.depth_any
= 1;
4125 } else if (strcmp((yyvsp
[(1) - (1)].identifier
), "depth_greater") == 0) {
4127 (yyval
.type_qualifier
).flags
.q
.depth_greater
= 1;
4128 } else if (strcmp((yyvsp
[(1) - (1)].identifier
), "depth_less") == 0) {
4130 (yyval
.type_qualifier
).flags
.q
.depth_less
= 1;
4131 } else if (strcmp((yyvsp
[(1) - (1)].identifier
), "depth_unchanged") == 0) {
4133 (yyval
.type_qualifier
).flags
.q
.depth_unchanged
= 1;
4136 if (got_one
&& state
->AMD_conservative_depth_warn
) {
4137 _mesa_glsl_warning(& (yylsp
[(1) - (1)]), state
,
4138 "GL_AMD_conservative_depth "
4139 "layout qualifier `%s' is used\n", (yyvsp
[(1) - (1)].identifier
));
4141 if (got_one
&& state
->ARB_conservative_depth_warn
) {
4142 _mesa_glsl_warning(& (yylsp
[(1) - (1)]), state
,
4143 "GL_ARB_conservative_depth "
4144 "layout qualifier `%s' is used\n", (yyvsp
[(1) - (1)].identifier
));
4149 _mesa_glsl_error(& (yylsp
[(1) - (1)]), state
, "unrecognized layout identifier "
4150 "`%s'\n", (yyvsp
[(1) - (1)].identifier
));
4158 /* Line 1464 of yacc.c */
4159 #line 1169 "glsl_parser.yy"
4161 bool got_one
= false;
4163 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
4165 if (state
->ARB_explicit_attrib_location_enable
) {
4166 /* FINISHME: Handle 'index' once GL_ARB_blend_func_exteneded and
4167 * FINISHME: GLSL 1.30 (or later) are supported.
4169 if (strcmp("location", (yyvsp
[(1) - (3)].identifier
)) == 0) {
4172 (yyval
.type_qualifier
).flags
.q
.explicit_location
= 1;
4174 if ((yyvsp
[(3) - (3)].n
) >= 0) {
4175 (yyval
.type_qualifier
).location
= (yyvsp
[(3) - (3)].n
);
4177 _mesa_glsl_error(& (yylsp
[(3) - (3)]), state
,
4178 "invalid location %d specified\n", (yyvsp
[(3) - (3)].n
));
4184 /* If the identifier didn't match any known layout identifiers,
4188 _mesa_glsl_error(& (yylsp
[(1) - (3)]), state
, "unrecognized layout identifier "
4189 "`%s'\n", (yyvsp
[(1) - (3)].identifier
));
4191 } else if (state
->ARB_explicit_attrib_location_warn
) {
4192 _mesa_glsl_warning(& (yylsp
[(1) - (3)]), state
,
4193 "GL_ARB_explicit_attrib_location layout "
4194 "identifier `%s' used\n", (yyvsp
[(1) - (3)].identifier
));
4201 /* Line 1464 of yacc.c */
4202 #line 1210 "glsl_parser.yy"
4204 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
4205 (yyval
.type_qualifier
).flags
.q
.smooth
= 1;
4211 /* Line 1464 of yacc.c */
4212 #line 1215 "glsl_parser.yy"
4214 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
4215 (yyval
.type_qualifier
).flags
.q
.flat
= 1;
4221 /* Line 1464 of yacc.c */
4222 #line 1220 "glsl_parser.yy"
4224 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
4225 (yyval
.type_qualifier
).flags
.q
.noperspective
= 1;
4231 /* Line 1464 of yacc.c */
4232 #line 1228 "glsl_parser.yy"
4234 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
4235 (yyval
.type_qualifier
).flags
.q
.constant
= 1;
4241 /* Line 1464 of yacc.c */
4242 #line 1238 "glsl_parser.yy"
4244 (yyval
.type_qualifier
) = (yyvsp
[(1) - (2)].type_qualifier
);
4245 (yyval
.type_qualifier
).flags
.i
|= (yyvsp
[(2) - (2)].type_qualifier
).flags
.i
;
4251 /* Line 1464 of yacc.c */
4252 #line 1244 "glsl_parser.yy"
4254 (yyval
.type_qualifier
) = (yyvsp
[(1) - (2)].type_qualifier
);
4255 (yyval
.type_qualifier
).flags
.i
|= (yyvsp
[(2) - (2)].type_qualifier
).flags
.i
;
4261 /* Line 1464 of yacc.c */
4262 #line 1249 "glsl_parser.yy"
4264 (yyval
.type_qualifier
) = (yyvsp
[(2) - (2)].type_qualifier
);
4265 (yyval
.type_qualifier
).flags
.q
.invariant
= 1;
4271 /* Line 1464 of yacc.c */
4272 #line 1254 "glsl_parser.yy"
4274 (yyval
.type_qualifier
) = (yyvsp
[(2) - (3)].type_qualifier
);
4275 (yyval
.type_qualifier
).flags
.i
|= (yyvsp
[(3) - (3)].type_qualifier
).flags
.i
;
4276 (yyval
.type_qualifier
).flags
.q
.invariant
= 1;
4282 /* Line 1464 of yacc.c */
4283 #line 1260 "glsl_parser.yy"
4285 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
4286 (yyval
.type_qualifier
).flags
.q
.invariant
= 1;
4292 /* Line 1464 of yacc.c */
4293 #line 1268 "glsl_parser.yy"
4295 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
4296 (yyval
.type_qualifier
).flags
.q
.constant
= 1;
4302 /* Line 1464 of yacc.c */
4303 #line 1273 "glsl_parser.yy"
4305 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
4306 (yyval
.type_qualifier
).flags
.q
.attribute
= 1;
4312 /* Line 1464 of yacc.c */
4313 #line 1278 "glsl_parser.yy"
4315 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
4316 (yyval
.type_qualifier
).flags
.q
.varying
= 1;
4322 /* Line 1464 of yacc.c */
4323 #line 1283 "glsl_parser.yy"
4325 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
4326 (yyval
.type_qualifier
).flags
.q
.centroid
= 1;
4327 (yyval
.type_qualifier
).flags
.q
.varying
= 1;
4333 /* Line 1464 of yacc.c */
4334 #line 1289 "glsl_parser.yy"
4336 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
4337 (yyval
.type_qualifier
).flags
.q
.in
= 1;
4343 /* Line 1464 of yacc.c */
4344 #line 1294 "glsl_parser.yy"
4346 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
4347 (yyval
.type_qualifier
).flags
.q
.out
= 1;
4353 /* Line 1464 of yacc.c */
4354 #line 1299 "glsl_parser.yy"
4356 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
4357 (yyval
.type_qualifier
).flags
.q
.centroid
= 1; (yyval
.type_qualifier
).flags
.q
.in
= 1;
4363 /* Line 1464 of yacc.c */
4364 #line 1304 "glsl_parser.yy"
4366 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
4367 (yyval
.type_qualifier
).flags
.q
.centroid
= 1; (yyval
.type_qualifier
).flags
.q
.out
= 1;
4373 /* Line 1464 of yacc.c */
4374 #line 1309 "glsl_parser.yy"
4376 memset(& (yyval
.type_qualifier
), 0, sizeof((yyval
.type_qualifier
)));
4377 (yyval
.type_qualifier
).flags
.q
.uniform
= 1;
4383 /* Line 1464 of yacc.c */
4384 #line 1317 "glsl_parser.yy"
4386 (yyval
.type_specifier
) = (yyvsp
[(1) - (1)].type_specifier
);
4392 /* Line 1464 of yacc.c */
4393 #line 1321 "glsl_parser.yy"
4395 (yyval
.type_specifier
) = (yyvsp
[(2) - (2)].type_specifier
);
4396 (yyval
.type_specifier
)->precision
= (yyvsp
[(1) - (2)].n
);
4402 /* Line 1464 of yacc.c */
4403 #line 1330 "glsl_parser.yy"
4405 (yyval
.type_specifier
) = (yyvsp
[(1) - (3)].type_specifier
);
4406 (yyval
.type_specifier
)->is_array
= true;
4407 (yyval
.type_specifier
)->array_size
= NULL
;
4413 /* Line 1464 of yacc.c */
4414 #line 1336 "glsl_parser.yy"
4416 (yyval
.type_specifier
) = (yyvsp
[(1) - (4)].type_specifier
);
4417 (yyval
.type_specifier
)->is_array
= true;
4418 (yyval
.type_specifier
)->array_size
= (yyvsp
[(3) - (4)].expression
);
4424 /* Line 1464 of yacc.c */
4425 #line 1345 "glsl_parser.yy"
4428 (yyval
.type_specifier
) = new(ctx
) ast_type_specifier((yyvsp
[(1) - (1)].n
));
4429 (yyval
.type_specifier
)->set_location(yylloc
);
4435 /* Line 1464 of yacc.c */
4436 #line 1351 "glsl_parser.yy"
4439 (yyval
.type_specifier
) = new(ctx
) ast_type_specifier((yyvsp
[(1) - (1)].struct_specifier
));
4440 (yyval
.type_specifier
)->set_location(yylloc
);
4446 /* Line 1464 of yacc.c */
4447 #line 1357 "glsl_parser.yy"
4450 (yyval
.type_specifier
) = new(ctx
) ast_type_specifier((yyvsp
[(1) - (1)].identifier
));
4451 (yyval
.type_specifier
)->set_location(yylloc
);
4457 /* Line 1464 of yacc.c */
4458 #line 1365 "glsl_parser.yy"
4459 { (yyval
.n
) = ast_void
; ;}
4464 /* Line 1464 of yacc.c */
4465 #line 1366 "glsl_parser.yy"
4466 { (yyval
.n
) = ast_float
; ;}
4471 /* Line 1464 of yacc.c */
4472 #line 1367 "glsl_parser.yy"
4473 { (yyval
.n
) = ast_int
; ;}
4478 /* Line 1464 of yacc.c */
4479 #line 1368 "glsl_parser.yy"
4480 { (yyval
.n
) = ast_uint
; ;}
4485 /* Line 1464 of yacc.c */
4486 #line 1369 "glsl_parser.yy"
4487 { (yyval
.n
) = ast_bool
; ;}
4492 /* Line 1464 of yacc.c */
4493 #line 1370 "glsl_parser.yy"
4494 { (yyval
.n
) = ast_vec2
; ;}
4499 /* Line 1464 of yacc.c */
4500 #line 1371 "glsl_parser.yy"
4501 { (yyval
.n
) = ast_vec3
; ;}
4506 /* Line 1464 of yacc.c */
4507 #line 1372 "glsl_parser.yy"
4508 { (yyval
.n
) = ast_vec4
; ;}
4513 /* Line 1464 of yacc.c */
4514 #line 1373 "glsl_parser.yy"
4515 { (yyval
.n
) = ast_bvec2
; ;}
4520 /* Line 1464 of yacc.c */
4521 #line 1374 "glsl_parser.yy"
4522 { (yyval
.n
) = ast_bvec3
; ;}
4527 /* Line 1464 of yacc.c */
4528 #line 1375 "glsl_parser.yy"
4529 { (yyval
.n
) = ast_bvec4
; ;}
4534 /* Line 1464 of yacc.c */
4535 #line 1376 "glsl_parser.yy"
4536 { (yyval
.n
) = ast_ivec2
; ;}
4541 /* Line 1464 of yacc.c */
4542 #line 1377 "glsl_parser.yy"
4543 { (yyval
.n
) = ast_ivec3
; ;}
4548 /* Line 1464 of yacc.c */
4549 #line 1378 "glsl_parser.yy"
4550 { (yyval
.n
) = ast_ivec4
; ;}
4555 /* Line 1464 of yacc.c */
4556 #line 1379 "glsl_parser.yy"
4557 { (yyval
.n
) = ast_uvec2
; ;}
4562 /* Line 1464 of yacc.c */
4563 #line 1380 "glsl_parser.yy"
4564 { (yyval
.n
) = ast_uvec3
; ;}
4569 /* Line 1464 of yacc.c */
4570 #line 1381 "glsl_parser.yy"
4571 { (yyval
.n
) = ast_uvec4
; ;}
4576 /* Line 1464 of yacc.c */
4577 #line 1382 "glsl_parser.yy"
4578 { (yyval
.n
) = ast_mat2
; ;}
4583 /* Line 1464 of yacc.c */
4584 #line 1383 "glsl_parser.yy"
4585 { (yyval
.n
) = ast_mat2x3
; ;}
4590 /* Line 1464 of yacc.c */
4591 #line 1384 "glsl_parser.yy"
4592 { (yyval
.n
) = ast_mat2x4
; ;}
4597 /* Line 1464 of yacc.c */
4598 #line 1385 "glsl_parser.yy"
4599 { (yyval
.n
) = ast_mat3x2
; ;}
4604 /* Line 1464 of yacc.c */
4605 #line 1386 "glsl_parser.yy"
4606 { (yyval
.n
) = ast_mat3
; ;}
4611 /* Line 1464 of yacc.c */
4612 #line 1387 "glsl_parser.yy"
4613 { (yyval
.n
) = ast_mat3x4
; ;}
4618 /* Line 1464 of yacc.c */
4619 #line 1388 "glsl_parser.yy"
4620 { (yyval
.n
) = ast_mat4x2
; ;}
4625 /* Line 1464 of yacc.c */
4626 #line 1389 "glsl_parser.yy"
4627 { (yyval
.n
) = ast_mat4x3
; ;}
4632 /* Line 1464 of yacc.c */
4633 #line 1390 "glsl_parser.yy"
4634 { (yyval
.n
) = ast_mat4
; ;}
4639 /* Line 1464 of yacc.c */
4640 #line 1391 "glsl_parser.yy"
4641 { (yyval
.n
) = ast_sampler1d
; ;}
4646 /* Line 1464 of yacc.c */
4647 #line 1392 "glsl_parser.yy"
4648 { (yyval
.n
) = ast_sampler2d
; ;}
4653 /* Line 1464 of yacc.c */
4654 #line 1393 "glsl_parser.yy"
4655 { (yyval
.n
) = ast_sampler2drect
; ;}
4660 /* Line 1464 of yacc.c */
4661 #line 1394 "glsl_parser.yy"
4662 { (yyval
.n
) = ast_sampler3d
; ;}
4667 /* Line 1464 of yacc.c */
4668 #line 1395 "glsl_parser.yy"
4669 { (yyval
.n
) = ast_samplercube
; ;}
4674 /* Line 1464 of yacc.c */
4675 #line 1396 "glsl_parser.yy"
4676 { (yyval
.n
) = ast_samplerexternaloes
; ;}
4681 /* Line 1464 of yacc.c */
4682 #line 1397 "glsl_parser.yy"
4683 { (yyval
.n
) = ast_sampler1dshadow
; ;}
4688 /* Line 1464 of yacc.c */
4689 #line 1398 "glsl_parser.yy"
4690 { (yyval
.n
) = ast_sampler2dshadow
; ;}
4695 /* Line 1464 of yacc.c */
4696 #line 1399 "glsl_parser.yy"
4697 { (yyval
.n
) = ast_sampler2drectshadow
; ;}
4702 /* Line 1464 of yacc.c */
4703 #line 1400 "glsl_parser.yy"
4704 { (yyval
.n
) = ast_samplercubeshadow
; ;}
4709 /* Line 1464 of yacc.c */
4710 #line 1401 "glsl_parser.yy"
4711 { (yyval
.n
) = ast_sampler1darray
; ;}
4716 /* Line 1464 of yacc.c */
4717 #line 1402 "glsl_parser.yy"
4718 { (yyval
.n
) = ast_sampler2darray
; ;}
4723 /* Line 1464 of yacc.c */
4724 #line 1403 "glsl_parser.yy"
4725 { (yyval
.n
) = ast_sampler1darrayshadow
; ;}
4730 /* Line 1464 of yacc.c */
4731 #line 1404 "glsl_parser.yy"
4732 { (yyval
.n
) = ast_sampler2darrayshadow
; ;}
4737 /* Line 1464 of yacc.c */
4738 #line 1405 "glsl_parser.yy"
4739 { (yyval
.n
) = ast_isampler1d
; ;}
4744 /* Line 1464 of yacc.c */
4745 #line 1406 "glsl_parser.yy"
4746 { (yyval
.n
) = ast_isampler2d
; ;}
4751 /* Line 1464 of yacc.c */
4752 #line 1407 "glsl_parser.yy"
4753 { (yyval
.n
) = ast_isampler3d
; ;}
4758 /* Line 1464 of yacc.c */
4759 #line 1408 "glsl_parser.yy"
4760 { (yyval
.n
) = ast_isamplercube
; ;}
4765 /* Line 1464 of yacc.c */
4766 #line 1409 "glsl_parser.yy"
4767 { (yyval
.n
) = ast_isampler1darray
; ;}
4772 /* Line 1464 of yacc.c */
4773 #line 1410 "glsl_parser.yy"
4774 { (yyval
.n
) = ast_isampler2darray
; ;}
4779 /* Line 1464 of yacc.c */
4780 #line 1411 "glsl_parser.yy"
4781 { (yyval
.n
) = ast_usampler1d
; ;}
4786 /* Line 1464 of yacc.c */
4787 #line 1412 "glsl_parser.yy"
4788 { (yyval
.n
) = ast_usampler2d
; ;}
4793 /* Line 1464 of yacc.c */
4794 #line 1413 "glsl_parser.yy"
4795 { (yyval
.n
) = ast_usampler3d
; ;}
4800 /* Line 1464 of yacc.c */
4801 #line 1414 "glsl_parser.yy"
4802 { (yyval
.n
) = ast_usamplercube
; ;}
4807 /* Line 1464 of yacc.c */
4808 #line 1415 "glsl_parser.yy"
4809 { (yyval
.n
) = ast_usampler1darray
; ;}
4814 /* Line 1464 of yacc.c */
4815 #line 1416 "glsl_parser.yy"
4816 { (yyval
.n
) = ast_usampler2darray
; ;}
4821 /* Line 1464 of yacc.c */
4822 #line 1420 "glsl_parser.yy"
4824 if (!state
->es_shader
&& state
->language_version
< 130)
4825 _mesa_glsl_error(& (yylsp
[(1) - (1)]), state
,
4826 "precision qualifier forbidden "
4827 "in %s (1.30 or later "
4829 state
->version_string
);
4831 (yyval
.n
) = ast_precision_high
;
4837 /* Line 1464 of yacc.c */
4838 #line 1430 "glsl_parser.yy"
4840 if (!state
->es_shader
&& state
->language_version
< 130)
4841 _mesa_glsl_error(& (yylsp
[(1) - (1)]), state
,
4842 "precision qualifier forbidden "
4843 "in %s (1.30 or later "
4845 state
->version_string
);
4847 (yyval
.n
) = ast_precision_medium
;
4853 /* Line 1464 of yacc.c */
4854 #line 1440 "glsl_parser.yy"
4856 if (!state
->es_shader
&& state
->language_version
< 130)
4857 _mesa_glsl_error(& (yylsp
[(1) - (1)]), state
,
4858 "precision qualifier forbidden "
4859 "in %s (1.30 or later "
4861 state
->version_string
);
4863 (yyval
.n
) = ast_precision_low
;
4869 /* Line 1464 of yacc.c */
4870 #line 1454 "glsl_parser.yy"
4873 (yyval
.struct_specifier
) = new(ctx
) ast_struct_specifier((yyvsp
[(2) - (5)].identifier
), (yyvsp
[(4) - (5)].node
));
4874 (yyval
.struct_specifier
)->set_location(yylloc
);
4875 state
->symbols
->add_type((yyvsp
[(2) - (5)].identifier
), glsl_type::void_type
);
4881 /* Line 1464 of yacc.c */
4882 #line 1461 "glsl_parser.yy"
4885 (yyval
.struct_specifier
) = new(ctx
) ast_struct_specifier(NULL
, (yyvsp
[(3) - (4)].node
));
4886 (yyval
.struct_specifier
)->set_location(yylloc
);
4892 /* Line 1464 of yacc.c */
4893 #line 1470 "glsl_parser.yy"
4895 (yyval
.node
) = (ast_node
*) (yyvsp
[(1) - (1)].declarator_list
);
4896 (yyvsp
[(1) - (1)].declarator_list
)->link
.self_link();
4902 /* Line 1464 of yacc.c */
4903 #line 1475 "glsl_parser.yy"
4905 (yyval
.node
) = (ast_node
*) (yyvsp
[(1) - (2)].node
);
4906 (yyval
.node
)->link
.insert_before(& (yyvsp
[(2) - (2)].declarator_list
)->link
);
4912 /* Line 1464 of yacc.c */
4913 #line 1483 "glsl_parser.yy"
4916 ast_fully_specified_type
*type
= new(ctx
) ast_fully_specified_type();
4917 type
->set_location(yylloc
);
4919 type
->specifier
= (yyvsp
[(1) - (3)].type_specifier
);
4920 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list(type
);
4921 (yyval
.declarator_list
)->set_location(yylloc
);
4923 (yyval
.declarator_list
)->declarations
.push_degenerate_list_at_head(& (yyvsp
[(2) - (3)].declaration
)->link
);
4929 /* Line 1464 of yacc.c */
4930 #line 1498 "glsl_parser.yy"
4932 (yyval
.declaration
) = (yyvsp
[(1) - (1)].declaration
);
4933 (yyvsp
[(1) - (1)].declaration
)->link
.self_link();
4939 /* Line 1464 of yacc.c */
4940 #line 1503 "glsl_parser.yy"
4942 (yyval
.declaration
) = (yyvsp
[(1) - (3)].declaration
);
4943 (yyval
.declaration
)->link
.insert_before(& (yyvsp
[(3) - (3)].declaration
)->link
);
4949 /* Line 1464 of yacc.c */
4950 #line 1511 "glsl_parser.yy"
4953 (yyval
.declaration
) = new(ctx
) ast_declaration((yyvsp
[(1) - (1)].identifier
), false, NULL
, NULL
);
4954 (yyval
.declaration
)->set_location(yylloc
);
4955 state
->symbols
->add_variable(new(state
) ir_variable(NULL
, (yyvsp
[(1) - (1)].identifier
), ir_var_auto
));
4961 /* Line 1464 of yacc.c */
4962 #line 1518 "glsl_parser.yy"
4965 (yyval
.declaration
) = new(ctx
) ast_declaration((yyvsp
[(1) - (4)].identifier
), true, (yyvsp
[(3) - (4)].expression
), NULL
);
4966 (yyval
.declaration
)->set_location(yylloc
);
4972 /* Line 1464 of yacc.c */
4973 #line 1536 "glsl_parser.yy"
4974 { (yyval
.node
) = (ast_node
*) (yyvsp
[(1) - (1)].compound_statement
); ;}
4979 /* Line 1464 of yacc.c */
4980 #line 1551 "glsl_parser.yy"
4983 (yyval
.compound_statement
) = new(ctx
) ast_compound_statement(true, NULL
);
4984 (yyval
.compound_statement
)->set_location(yylloc
);
4990 /* Line 1464 of yacc.c */
4991 #line 1557 "glsl_parser.yy"
4993 state
->symbols
->push_scope();
4999 /* Line 1464 of yacc.c */
5000 #line 1561 "glsl_parser.yy"
5003 (yyval
.compound_statement
) = new(ctx
) ast_compound_statement(true, (yyvsp
[(3) - (4)].node
));
5004 (yyval
.compound_statement
)->set_location(yylloc
);
5005 state
->symbols
->pop_scope();
5011 /* Line 1464 of yacc.c */
5012 #line 1570 "glsl_parser.yy"
5013 { (yyval
.node
) = (ast_node
*) (yyvsp
[(1) - (1)].compound_statement
); ;}
5018 /* Line 1464 of yacc.c */
5019 #line 1576 "glsl_parser.yy"
5022 (yyval
.compound_statement
) = new(ctx
) ast_compound_statement(false, NULL
);
5023 (yyval
.compound_statement
)->set_location(yylloc
);
5029 /* Line 1464 of yacc.c */
5030 #line 1582 "glsl_parser.yy"
5033 (yyval
.compound_statement
) = new(ctx
) ast_compound_statement(false, (yyvsp
[(2) - (3)].node
));
5034 (yyval
.compound_statement
)->set_location(yylloc
);
5040 /* Line 1464 of yacc.c */
5041 #line 1591 "glsl_parser.yy"
5043 if ((yyvsp
[(1) - (1)].node
) == NULL
) {
5044 _mesa_glsl_error(& (yylsp
[(1) - (1)]), state
, "<nil> statement\n");
5045 assert((yyvsp
[(1) - (1)].node
) != NULL
);
5048 (yyval
.node
) = (yyvsp
[(1) - (1)].node
);
5049 (yyval
.node
)->link
.self_link();
5055 /* Line 1464 of yacc.c */
5056 #line 1601 "glsl_parser.yy"
5058 if ((yyvsp
[(2) - (2)].node
) == NULL
) {
5059 _mesa_glsl_error(& (yylsp
[(2) - (2)]), state
, "<nil> statement\n");
5060 assert((yyvsp
[(2) - (2)].node
) != NULL
);
5062 (yyval
.node
) = (yyvsp
[(1) - (2)].node
);
5063 (yyval
.node
)->link
.insert_before(& (yyvsp
[(2) - (2)].node
)->link
);
5069 /* Line 1464 of yacc.c */
5070 #line 1613 "glsl_parser.yy"
5073 (yyval
.node
) = new(ctx
) ast_expression_statement(NULL
);
5074 (yyval
.node
)->set_location(yylloc
);
5080 /* Line 1464 of yacc.c */
5081 #line 1619 "glsl_parser.yy"
5084 (yyval
.node
) = new(ctx
) ast_expression_statement((yyvsp
[(1) - (2)].expression
));
5085 (yyval
.node
)->set_location(yylloc
);
5091 /* Line 1464 of yacc.c */
5092 #line 1628 "glsl_parser.yy"
5094 (yyval
.node
) = new(state
) ast_selection_statement((yyvsp
[(3) - (5)].expression
), (yyvsp
[(5) - (5)].selection_rest_statement
).then_statement
,
5095 (yyvsp
[(5) - (5)].selection_rest_statement
).else_statement
);
5096 (yyval
.node
)->set_location(yylloc
);
5102 /* Line 1464 of yacc.c */
5103 #line 1637 "glsl_parser.yy"
5105 (yyval
.selection_rest_statement
).then_statement
= (yyvsp
[(1) - (3)].node
);
5106 (yyval
.selection_rest_statement
).else_statement
= (yyvsp
[(3) - (3)].node
);
5112 /* Line 1464 of yacc.c */
5113 #line 1642 "glsl_parser.yy"
5115 (yyval
.selection_rest_statement
).then_statement
= (yyvsp
[(1) - (1)].node
);
5116 (yyval
.selection_rest_statement
).else_statement
= NULL
;
5122 /* Line 1464 of yacc.c */
5123 #line 1650 "glsl_parser.yy"
5125 (yyval
.node
) = (ast_node
*) (yyvsp
[(1) - (1)].expression
);
5131 /* Line 1464 of yacc.c */
5132 #line 1654 "glsl_parser.yy"
5135 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(2) - (4)].identifier
), false, NULL
, (yyvsp
[(4) - (4)].expression
));
5136 ast_declarator_list
*declarator
= new(ctx
) ast_declarator_list((yyvsp
[(1) - (4)].fully_specified_type
));
5137 decl
->set_location(yylloc
);
5138 declarator
->set_location(yylloc
);
5140 declarator
->declarations
.push_tail(&decl
->link
);
5141 (yyval
.node
) = declarator
;
5147 /* Line 1464 of yacc.c */
5148 #line 1672 "glsl_parser.yy"
5150 (yyval
.node
) = new(state
) ast_switch_statement((yyvsp
[(3) - (5)].expression
), (yyvsp
[(5) - (5)].switch_body
));
5151 (yyval
.node
)->set_location(yylloc
);
5157 /* Line 1464 of yacc.c */
5158 #line 1680 "glsl_parser.yy"
5160 (yyval
.switch_body
) = new(state
) ast_switch_body(NULL
);
5161 (yyval
.switch_body
)->set_location(yylloc
);
5167 /* Line 1464 of yacc.c */
5168 #line 1685 "glsl_parser.yy"
5170 (yyval
.switch_body
) = new(state
) ast_switch_body((yyvsp
[(2) - (3)].case_statement_list
));
5171 (yyval
.switch_body
)->set_location(yylloc
);
5177 /* Line 1464 of yacc.c */
5178 #line 1693 "glsl_parser.yy"
5180 (yyval
.case_label
) = new(state
) ast_case_label((yyvsp
[(2) - (3)].expression
));
5181 (yyval
.case_label
)->set_location(yylloc
);
5187 /* Line 1464 of yacc.c */
5188 #line 1698 "glsl_parser.yy"
5190 (yyval
.case_label
) = new(state
) ast_case_label(NULL
);
5191 (yyval
.case_label
)->set_location(yylloc
);
5197 /* Line 1464 of yacc.c */
5198 #line 1706 "glsl_parser.yy"
5200 ast_case_label_list
*labels
= new(state
) ast_case_label_list();
5202 labels
->labels
.push_tail(& (yyvsp
[(1) - (1)].case_label
)->link
);
5203 (yyval
.case_label_list
) = labels
;
5204 (yyval
.case_label_list
)->set_location(yylloc
);
5210 /* Line 1464 of yacc.c */
5211 #line 1714 "glsl_parser.yy"
5213 (yyval
.case_label_list
) = (yyvsp
[(1) - (2)].case_label_list
);
5214 (yyval
.case_label_list
)->labels
.push_tail(& (yyvsp
[(2) - (2)].case_label
)->link
);
5220 /* Line 1464 of yacc.c */
5221 #line 1722 "glsl_parser.yy"
5223 ast_case_statement
*stmts
= new(state
) ast_case_statement((yyvsp
[(1) - (2)].case_label_list
));
5224 stmts
->set_location(yylloc
);
5226 stmts
->stmts
.push_tail(& (yyvsp
[(2) - (2)].node
)->link
);
5227 (yyval
.case_statement
) = stmts
;
5233 /* Line 1464 of yacc.c */
5234 #line 1730 "glsl_parser.yy"
5236 (yyval
.case_statement
) = (yyvsp
[(1) - (2)].case_statement
);
5237 (yyval
.case_statement
)->stmts
.push_tail(& (yyvsp
[(2) - (2)].node
)->link
);
5243 /* Line 1464 of yacc.c */
5244 #line 1738 "glsl_parser.yy"
5246 ast_case_statement_list
*cases
= new(state
) ast_case_statement_list();
5247 cases
->set_location(yylloc
);
5249 cases
->cases
.push_tail(& (yyvsp
[(1) - (1)].case_statement
)->link
);
5250 (yyval
.case_statement_list
) = cases
;
5256 /* Line 1464 of yacc.c */
5257 #line 1746 "glsl_parser.yy"
5259 (yyval
.case_statement_list
) = (yyvsp
[(1) - (2)].case_statement_list
);
5260 (yyval
.case_statement_list
)->cases
.push_tail(& (yyvsp
[(2) - (2)].case_statement
)->link
);
5266 /* Line 1464 of yacc.c */
5267 #line 1754 "glsl_parser.yy"
5270 (yyval
.node
) = new(ctx
) ast_iteration_statement(ast_iteration_statement::ast_while
,
5271 NULL
, (yyvsp
[(3) - (5)].node
), NULL
, (yyvsp
[(5) - (5)].node
));
5272 (yyval
.node
)->set_location(yylloc
);
5278 /* Line 1464 of yacc.c */
5279 #line 1761 "glsl_parser.yy"
5282 (yyval
.node
) = new(ctx
) ast_iteration_statement(ast_iteration_statement::ast_do_while
,
5283 NULL
, (yyvsp
[(5) - (7)].expression
), NULL
, (yyvsp
[(2) - (7)].node
));
5284 (yyval
.node
)->set_location(yylloc
);
5290 /* Line 1464 of yacc.c */
5291 #line 1768 "glsl_parser.yy"
5294 (yyval
.node
) = new(ctx
) ast_iteration_statement(ast_iteration_statement::ast_for
,
5295 (yyvsp
[(3) - (6)].node
), (yyvsp
[(4) - (6)].for_rest_statement
).cond
, (yyvsp
[(4) - (6)].for_rest_statement
).rest
, (yyvsp
[(6) - (6)].node
));
5296 (yyval
.node
)->set_location(yylloc
);
5302 /* Line 1464 of yacc.c */
5303 #line 1784 "glsl_parser.yy"
5305 (yyval
.node
) = NULL
;
5311 /* Line 1464 of yacc.c */
5312 #line 1791 "glsl_parser.yy"
5314 (yyval
.for_rest_statement
).cond
= (yyvsp
[(1) - (2)].node
);
5315 (yyval
.for_rest_statement
).rest
= NULL
;
5321 /* Line 1464 of yacc.c */
5322 #line 1796 "glsl_parser.yy"
5324 (yyval
.for_rest_statement
).cond
= (yyvsp
[(1) - (3)].node
);
5325 (yyval
.for_rest_statement
).rest
= (yyvsp
[(3) - (3)].expression
);
5331 /* Line 1464 of yacc.c */
5332 #line 1805 "glsl_parser.yy"
5335 (yyval
.node
) = new(ctx
) ast_jump_statement(ast_jump_statement::ast_continue
, NULL
);
5336 (yyval
.node
)->set_location(yylloc
);
5342 /* Line 1464 of yacc.c */
5343 #line 1811 "glsl_parser.yy"
5346 (yyval
.node
) = new(ctx
) ast_jump_statement(ast_jump_statement::ast_break
, NULL
);
5347 (yyval
.node
)->set_location(yylloc
);
5353 /* Line 1464 of yacc.c */
5354 #line 1817 "glsl_parser.yy"
5357 (yyval
.node
) = new(ctx
) ast_jump_statement(ast_jump_statement::ast_return
, NULL
);
5358 (yyval
.node
)->set_location(yylloc
);
5364 /* Line 1464 of yacc.c */
5365 #line 1823 "glsl_parser.yy"
5368 (yyval
.node
) = new(ctx
) ast_jump_statement(ast_jump_statement::ast_return
, (yyvsp
[(2) - (3)].expression
));
5369 (yyval
.node
)->set_location(yylloc
);
5375 /* Line 1464 of yacc.c */
5376 #line 1829 "glsl_parser.yy"
5379 (yyval
.node
) = new(ctx
) ast_jump_statement(ast_jump_statement::ast_discard
, NULL
);
5380 (yyval
.node
)->set_location(yylloc
);
5386 /* Line 1464 of yacc.c */
5387 #line 1837 "glsl_parser.yy"
5388 { (yyval
.node
) = (yyvsp
[(1) - (1)].function_definition
); ;}
5393 /* Line 1464 of yacc.c */
5394 #line 1838 "glsl_parser.yy"
5395 { (yyval
.node
) = (yyvsp
[(1) - (1)].node
); ;}
5400 /* Line 1464 of yacc.c */
5401 #line 1839 "glsl_parser.yy"
5402 { (yyval
.node
) = NULL
; ;}
5407 /* Line 1464 of yacc.c */
5408 #line 1844 "glsl_parser.yy"
5411 (yyval
.function_definition
) = new(ctx
) ast_function_definition();
5412 (yyval
.function_definition
)->set_location(yylloc
);
5413 (yyval
.function_definition
)->prototype
= (yyvsp
[(1) - (2)].function
);
5414 (yyval
.function_definition
)->body
= (yyvsp
[(2) - (2)].compound_statement
);
5416 state
->symbols
->pop_scope();
5422 /* Line 1464 of yacc.c */
5423 #line 5424 "glsl_parser.cpp"
5426 YY_SYMBOL_PRINT ("-> $$ =", yyr1
[yyn
], &yyval
, &yyloc
);
5430 YY_STACK_PRINT (yyss
, yyssp
);
5435 /* Now `shift' the result of the reduction. Determine what state
5436 that goes to, based on the state we popped back to and the rule
5437 number reduced by. */
5441 yystate
= yypgoto
[yyn
- YYNTOKENS
] + *yyssp
;
5442 if (0 <= yystate
&& yystate
<= YYLAST
&& yycheck
[yystate
] == *yyssp
)
5443 yystate
= yytable
[yystate
];
5445 yystate
= yydefgoto
[yyn
- YYNTOKENS
];
5450 /*------------------------------------.
5451 | yyerrlab -- here on detecting error |
5452 `------------------------------------*/
5454 /* If not already recovering from an error, report this error. */
5458 #if ! YYERROR_VERBOSE
5459 yyerror (&yylloc
, state
, YY_("syntax error"));
5462 YYSIZE_T yysize
= yysyntax_error (0, yystate
, yychar
);
5463 if (yymsg_alloc
< yysize
&& yymsg_alloc
< YYSTACK_ALLOC_MAXIMUM
)
5465 YYSIZE_T yyalloc
= 2 * yysize
;
5466 if (! (yysize
<= yyalloc
&& yyalloc
<= YYSTACK_ALLOC_MAXIMUM
))
5467 yyalloc
= YYSTACK_ALLOC_MAXIMUM
;
5468 if (yymsg
!= yymsgbuf
)
5469 YYSTACK_FREE (yymsg
);
5470 yymsg
= (char *) YYSTACK_ALLOC (yyalloc
);
5472 yymsg_alloc
= yyalloc
;
5476 yymsg_alloc
= sizeof yymsgbuf
;
5480 if (0 < yysize
&& yysize
<= yymsg_alloc
)
5482 (void) yysyntax_error (yymsg
, yystate
, yychar
);
5483 yyerror (&yylloc
, state
, yymsg
);
5487 yyerror (&yylloc
, state
, YY_("syntax error"));
5489 goto yyexhaustedlab
;
5495 yyerror_range
[1] = yylloc
;
5497 if (yyerrstatus
== 3)
5499 /* If just tried and failed to reuse lookahead token after an
5500 error, discard it. */
5502 if (yychar
<= YYEOF
)
5504 /* Return failure if at end of input. */
5505 if (yychar
== YYEOF
)
5510 yydestruct ("Error: discarding",
5511 yytoken
, &yylval
, &yylloc
, state
);
5516 /* Else will try to reuse lookahead token after shifting the error
5521 /*---------------------------------------------------.
5522 | yyerrorlab -- error raised explicitly by YYERROR. |
5523 `---------------------------------------------------*/
5526 /* Pacify compilers like GCC when the user code never invokes
5527 YYERROR and the label yyerrorlab therefore never appears in user
5529 if (/*CONSTCOND*/ 0)
5532 yyerror_range
[1] = yylsp
[1-yylen
];
5533 /* Do not reclaim the symbols of the rule which action triggered
5537 YY_STACK_PRINT (yyss
, yyssp
);
5542 /*-------------------------------------------------------------.
5543 | yyerrlab1 -- common code for both syntax error and YYERROR. |
5544 `-------------------------------------------------------------*/
5546 yyerrstatus
= 3; /* Each real token shifted decrements this. */
5550 yyn
= yypact
[yystate
];
5551 if (yyn
!= YYPACT_NINF
)
5554 if (0 <= yyn
&& yyn
<= YYLAST
&& yycheck
[yyn
] == YYTERROR
)
5562 /* Pop the current state because it cannot handle the error token. */
5566 yyerror_range
[1] = *yylsp
;
5567 yydestruct ("Error: popping",
5568 yystos
[yystate
], yyvsp
, yylsp
, state
);
5571 YY_STACK_PRINT (yyss
, yyssp
);
5576 yyerror_range
[2] = yylloc
;
5577 /* Using YYLLOC is tempting, but would change the location of
5578 the lookahead. YYLOC is available though. */
5579 YYLLOC_DEFAULT (yyloc
, yyerror_range
, 2);
5582 /* Shift the error token. */
5583 YY_SYMBOL_PRINT ("Shifting", yystos
[yyn
], yyvsp
, yylsp
);
5589 /*-------------------------------------.
5590 | yyacceptlab -- YYACCEPT comes here. |
5591 `-------------------------------------*/
5596 /*-----------------------------------.
5597 | yyabortlab -- YYABORT comes here. |
5598 `-----------------------------------*/
5603 #if !defined(yyoverflow) || YYERROR_VERBOSE
5604 /*-------------------------------------------------.
5605 | yyexhaustedlab -- memory exhaustion comes here. |
5606 `-------------------------------------------------*/
5608 yyerror (&yylloc
, state
, YY_("memory exhausted"));
5614 if (yychar
!= YYEMPTY
)
5615 yydestruct ("Cleanup: discarding lookahead",
5616 yytoken
, &yylval
, &yylloc
, state
);
5617 /* Do not reclaim the symbols of the rule which action triggered
5618 this YYABORT or YYACCEPT. */
5620 YY_STACK_PRINT (yyss
, yyssp
);
5621 while (yyssp
!= yyss
)
5623 yydestruct ("Cleanup: popping",
5624 yystos
[*yyssp
], yyvsp
, yylsp
, state
);
5629 YYSTACK_FREE (yyss
);
5632 if (yymsg
!= yymsgbuf
)
5633 YYSTACK_FREE (yymsg
);
5635 /* Make sure YYID is used. */
5636 return YYID (yyresult
);