2 /* A Bison parser, made by GNU Bison 2.4.1. */
4 /* Skeleton implementation for Bison's Yacc-like parsers in C
6 Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
7 Free Software Foundation, Inc.
9 This program is free software: you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as published by
11 the Free Software Foundation, either version 3 of the License, or
12 (at your option) any later version.
14 This program is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 GNU General Public License for more details.
19 You should have received a copy of the GNU General Public License
20 along with this program. If not, see <http://www.gnu.org/licenses/>. */
22 /* As a special exception, you may create a larger work that contains
23 part or all of the Bison parser skeleton and distribute that work
24 under terms of your choice, so long as that work isn't itself a
25 parser generator using the skeleton or a modified version thereof
26 as a parser skeleton. Alternatively, if you modify or redistribute
27 the parser skeleton itself, you may (at your option) remove this
28 special exception, which will cause the skeleton and the resulting
29 Bison output files to be licensed under the GNU General Public
30 License without this special exception.
32 This special exception was added by the Free Software Foundation in
33 version 2.2 of Bison. */
35 /* C LALR(1) parser skeleton written by Richard Stallman, by
36 simplifying the original so-called "semantic" parser. */
38 /* All symbols defined below should begin with yy or YY, to avoid
39 infringing on user name space. This should be done even for local
40 variables, as they might otherwise be expanded by user macros.
41 There are some unavoidable exceptions within include files to
42 define necessary library symbols; they are noted "INFRINGES ON
43 USER NAME SPACE" below. */
45 /* Identify Bison output. */
49 #define YYBISON_VERSION "2.4.1"
52 #define YYSKELETON_NAME "yacc.c"
63 /* Using locations. */
64 #define YYLSP_NEEDED 1
66 /* Substitute the variable and function names. */
67 #define yyparse _mesa_glsl_parse
68 #define yylex _mesa_glsl_lex
69 #define yyerror _mesa_glsl_error
70 #define yylval _mesa_glsl_lval
71 #define yychar _mesa_glsl_char
72 #define yydebug _mesa_glsl_debug
73 #define yynerrs _mesa_glsl_nerrs
74 #define yylloc _mesa_glsl_lloc
76 /* Copy the first part of user declarations. */
78 /* Line 189 of yacc.c */
79 #line 1 "glsl_parser.ypp"
82 * Copyright © 2008, 2009 Intel Corporation
84 * Permission is hereby granted, free of charge, to any person obtaining a
85 * copy of this software and associated documentation files (the "Software"),
86 * to deal in the Software without restriction, including without limitation
87 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
88 * and/or sell copies of the Software, and to permit persons to whom the
89 * Software is furnished to do so, subject to the following conditions:
91 * The above copyright notice and this permission notice (including the next
92 * paragraph) shall be included in all copies or substantial portions of the
95 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
96 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
97 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
98 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
99 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
100 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
101 * DEALINGS IN THE SOFTWARE.
109 #include "glsl_parser_extras.h"
110 #include "glsl_types.h"
112 #define YYLEX_PARAM state->scanner
116 /* Line 189 of yacc.c */
117 #line 118 "glsl_parser.cpp"
119 /* Enabling traces. */
124 /* Enabling verbose error messages. */
125 #ifdef YYERROR_VERBOSE
126 # undef YYERROR_VERBOSE
127 # define YYERROR_VERBOSE 1
129 # define YYERROR_VERBOSE 1
132 /* Enabling the token table. */
133 #ifndef YYTOKEN_TABLE
134 # define YYTOKEN_TABLE 0
141 /* Put the tokens into the symbol table, so that GDB and other debuggers
198 SAMPLER1DSHADOW
= 312,
199 SAMPLER2DSHADOW
= 313,
200 SAMPLERCUBESHADOW
= 314,
201 SAMPLER1DARRAY
= 315,
202 SAMPLER2DARRAY
= 316,
203 SAMPLER1DARRAYSHADOW
= 317,
204 SAMPLER2DARRAYSHADOW
= 318,
209 ISAMPLER1DARRAY
= 323,
210 ISAMPLER2DARRAY
= 324,
215 USAMPLER1DARRAY
= 329,
216 USAMPLER2DARRAY
= 330,
225 FIELD_SELECTION
= 339,
297 SAMPLER2DRECTSHADOW
= 411,
337 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
338 typedef union YYSTYPE
341 /* Line 214 of yacc.c */
342 #line 52 "glsl_parser.ypp"
349 struct ast_type_qualifier q
;
353 struct ast_node
*node
;
354 struct ast_type_specifier
*type_specifier
;
355 struct ast_fully_specified_type
*fully_specified_type
;
356 struct ast_function
*function
;
357 struct ast_parameter_declarator
*parameter_declarator
;
358 struct ast_function_definition
*function_definition
;
359 struct ast_compound_statement
*compound_statement
;
360 struct ast_expression
*expression
;
361 struct ast_declarator_list
*declarator_list
;
362 struct ast_struct_specifier
*struct_specifier
;
363 struct ast_declaration
*declaration
;
366 struct ast_node
*cond
;
367 struct ast_expression
*rest
;
368 } for_rest_statement
;
372 /* Line 214 of yacc.c */
373 #line 374 "glsl_parser.cpp"
375 # define YYSTYPE_IS_TRIVIAL 1
376 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
377 # define YYSTYPE_IS_DECLARED 1
380 #if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED
381 typedef struct YYLTYPE
388 # define yyltype YYLTYPE /* obsolescent; will be withdrawn */
389 # define YYLTYPE_IS_DECLARED 1
390 # define YYLTYPE_IS_TRIVIAL 1
394 /* Copy the second part of user declarations. */
397 /* Line 264 of yacc.c */
398 #line 399 "glsl_parser.cpp"
405 typedef YYTYPE_UINT8 yytype_uint8
;
407 typedef unsigned char yytype_uint8
;
411 typedef YYTYPE_INT8 yytype_int8
;
412 #elif (defined __STDC__ || defined __C99__FUNC__ \
413 || defined __cplusplus || defined _MSC_VER)
414 typedef signed char yytype_int8
;
416 typedef short int yytype_int8
;
420 typedef YYTYPE_UINT16 yytype_uint16
;
422 typedef unsigned short int yytype_uint16
;
426 typedef YYTYPE_INT16 yytype_int16
;
428 typedef short int yytype_int16
;
432 # ifdef __SIZE_TYPE__
433 # define YYSIZE_T __SIZE_TYPE__
434 # elif defined size_t
435 # define YYSIZE_T size_t
436 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
437 || defined __cplusplus || defined _MSC_VER)
438 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
439 # define YYSIZE_T size_t
441 # define YYSIZE_T unsigned int
445 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
450 # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
451 # define YY_(msgid) dgettext ("bison-runtime", msgid)
455 # define YY_(msgid) msgid
459 /* Suppress unused-variable warnings by "using" E. */
460 #if ! defined lint || defined __GNUC__
461 # define YYUSE(e) ((void) (e))
463 # define YYUSE(e) /* empty */
466 /* Identity function, used to suppress warnings about constant conditions. */
470 #if (defined __STDC__ || defined __C99__FUNC__ \
471 || defined __cplusplus || defined _MSC_VER)
484 #if ! defined yyoverflow || YYERROR_VERBOSE
486 /* The parser invokes alloca or malloc; define the necessary symbols. */
488 # ifdef YYSTACK_USE_ALLOCA
489 # if YYSTACK_USE_ALLOCA
491 # define YYSTACK_ALLOC __builtin_alloca
492 # elif defined __BUILTIN_VA_ARG_INCR
493 # include <alloca.h> /* INFRINGES ON USER NAME SPACE */
495 # define YYSTACK_ALLOC __alloca
496 # elif defined _MSC_VER
497 # include <malloc.h> /* INFRINGES ON USER NAME SPACE */
498 # define alloca _alloca
500 # define YYSTACK_ALLOC alloca
501 # if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
502 || defined __cplusplus || defined _MSC_VER)
503 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
512 # ifdef YYSTACK_ALLOC
513 /* Pacify GCC's `empty if-body' warning. */
514 # define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
515 # ifndef YYSTACK_ALLOC_MAXIMUM
516 /* The OS might guarantee only one guard page at the bottom of the stack,
517 and a page size can be as small as 4096 bytes. So we cannot safely
518 invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
519 to allow for a few compiler-allocated temporary stack slots. */
520 # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
523 # define YYSTACK_ALLOC YYMALLOC
524 # define YYSTACK_FREE YYFREE
525 # ifndef YYSTACK_ALLOC_MAXIMUM
526 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
528 # if (defined __cplusplus && ! defined _STDLIB_H \
529 && ! ((defined YYMALLOC || defined malloc) \
530 && (defined YYFREE || defined free)))
531 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
537 # define YYMALLOC malloc
538 # if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
539 || defined __cplusplus || defined _MSC_VER)
540 void *malloc (YYSIZE_T
); /* INFRINGES ON USER NAME SPACE */
545 # if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
546 || defined __cplusplus || defined _MSC_VER)
547 void free (void *); /* INFRINGES ON USER NAME SPACE */
551 #endif /* ! defined yyoverflow || YYERROR_VERBOSE */
554 #if (! defined yyoverflow \
555 && (! defined __cplusplus \
556 || (defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL \
557 && defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
559 /* A type that is properly aligned for any stack member. */
562 yytype_int16 yyss_alloc
;
567 /* The size of the maximum gap between one aligned stack and the next. */
568 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
570 /* The size of an array large to enough to hold all stacks, each with
572 # define YYSTACK_BYTES(N) \
573 ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \
574 + 2 * YYSTACK_GAP_MAXIMUM)
576 /* Copy COUNT objects from FROM to TO. The source and destination do
579 # if defined __GNUC__ && 1 < __GNUC__
580 # define YYCOPY(To, From, Count) \
581 __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
583 # define YYCOPY(To, From, Count) \
587 for (yyi = 0; yyi < (Count); yyi++) \
588 (To)[yyi] = (From)[yyi]; \
594 /* Relocate STACK from its old location to the new one. The
595 local variables YYSIZE and YYSTACKSIZE give the old and new number of
596 elements in the stack, and YYPTR gives the new location of the
597 stack. Advance YYPTR to a properly aligned location for the next
599 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \
602 YYSIZE_T yynewbytes; \
603 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
604 Stack = &yyptr->Stack_alloc; \
605 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
606 yyptr += yynewbytes / sizeof (*yyptr); \
612 /* YYFINAL -- State number of the termination state. */
614 /* YYLAST -- Last index in YYTABLE. */
617 /* YYNTOKENS -- Number of terminals. */
618 #define YYNTOKENS 215
619 /* YYNNTS -- Number of nonterminals. */
621 /* YYNRULES -- Number of rules. */
623 /* YYNRULES -- Number of states. */
624 #define YYNSTATES 413
626 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
628 #define YYMAXUTOK 445
630 #define YYTRANSLATE(YYX) \
631 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
633 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
634 static const yytype_uint8 yytranslate
[] =
636 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
637 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
638 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
639 2, 2, 2, 199, 2, 2, 2, 203, 206, 2,
640 191, 192, 201, 197, 196, 198, 195, 202, 2, 2,
641 2, 2, 2, 2, 2, 2, 2, 2, 210, 212,
642 204, 211, 205, 209, 2, 2, 2, 2, 2, 2,
643 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
644 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
645 2, 193, 2, 194, 207, 2, 2, 2, 2, 2,
646 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
647 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
648 2, 2, 2, 213, 208, 214, 200, 2, 2, 2,
649 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
650 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
651 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
652 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
653 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
654 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
655 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
656 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
657 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
658 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
659 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
660 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
661 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
662 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
663 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
664 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
665 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
666 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
667 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
668 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
669 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
670 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
671 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
672 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
673 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
674 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
675 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
676 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
677 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
678 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
679 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
680 185, 186, 187, 188, 189, 190
684 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
686 static const yytype_uint16 yyprhs
[] =
688 0, 0, 3, 4, 9, 10, 14, 15, 18, 24,
689 26, 29, 31, 33, 35, 37, 39, 41, 45, 47,
690 52, 54, 58, 61, 64, 66, 68, 70, 74, 77,
691 80, 83, 85, 88, 92, 95, 97, 99, 101, 103,
692 106, 109, 112, 114, 116, 118, 120, 122, 126, 130,
693 134, 136, 140, 144, 146, 150, 154, 156, 160, 164,
694 168, 172, 174, 178, 182, 184, 188, 190, 194, 196,
695 200, 202, 206, 208, 212, 214, 218, 220, 226, 228,
696 232, 234, 236, 238, 240, 242, 244, 246, 248, 250,
697 252, 254, 256, 260, 262, 265, 268, 273, 276, 278,
698 280, 283, 287, 291, 294, 300, 304, 307, 311, 314,
699 315, 317, 319, 321, 323, 325, 329, 335, 342, 350,
700 359, 365, 367, 370, 375, 381, 388, 396, 401, 404,
701 406, 409, 410, 412, 417, 419, 423, 425, 427, 429,
702 431, 433, 435, 438, 441, 443, 445, 448, 451, 454,
703 456, 459, 462, 464, 466, 469, 471, 475, 480, 482,
704 484, 486, 488, 490, 492, 494, 496, 498, 500, 502,
705 504, 506, 508, 510, 512, 514, 516, 518, 520, 522,
706 524, 526, 528, 530, 532, 534, 536, 538, 540, 542,
707 544, 546, 548, 550, 552, 554, 556, 558, 560, 562,
708 564, 566, 568, 570, 572, 574, 576, 578, 580, 582,
709 584, 586, 588, 590, 592, 594, 596, 598, 600, 606,
710 611, 613, 616, 620, 622, 626, 628, 633, 635, 637,
711 639, 641, 643, 645, 647, 649, 651, 653, 655, 657,
712 659, 661, 664, 668, 670, 672, 675, 679, 681, 684,
713 686, 689, 697, 703, 709, 717, 719, 724, 730, 734,
714 737, 743, 751, 758, 760, 762, 764, 765, 768, 772,
715 775, 778, 781, 785, 788, 790, 792
718 /* YYRHS -- A `-1'-separated list of the rules' RHS. */
719 static const yytype_int16 yyrhs
[] =
721 216, 0, -1, -1, 218, 219, 217, 221, -1, -1,
722 112, 81, 117, -1, -1, 219, 220, -1, 113, 79,
723 116, 79, 117, -1, 302, -1, 221, 302, -1, 79,
724 -1, 222, -1, 81, -1, 82, -1, 80, -1, 83,
725 -1, 191, 249, 192, -1, 223, -1, 224, 193, 225,
726 194, -1, 226, -1, 224, 195, 79, -1, 224, 87,
727 -1, 224, 88, -1, 249, -1, 227, -1, 228, -1,
728 224, 195, 228, -1, 230, 192, -1, 229, 192, -1,
729 231, 77, -1, 231, -1, 231, 247, -1, 230, 196,
730 247, -1, 232, 191, -1, 271, -1, 79, -1, 84,
731 -1, 224, -1, 87, 233, -1, 88, 233, -1, 234,
732 233, -1, 197, -1, 198, -1, 199, -1, 200, -1,
733 233, -1, 235, 201, 233, -1, 235, 202, 233, -1,
734 235, 203, 233, -1, 235, -1, 236, 197, 235, -1,
735 236, 198, 235, -1, 236, -1, 237, 85, 236, -1,
736 237, 86, 236, -1, 237, -1, 238, 204, 237, -1,
737 238, 205, 237, -1, 238, 89, 237, -1, 238, 90,
738 237, -1, 238, -1, 239, 91, 238, -1, 239, 92,
739 238, -1, 239, -1, 240, 206, 239, -1, 240, -1,
740 241, 207, 240, -1, 241, -1, 242, 208, 241, -1,
741 242, -1, 243, 93, 242, -1, 243, -1, 244, 95,
742 243, -1, 244, -1, 245, 94, 244, -1, 245, -1,
743 245, 209, 249, 210, 247, -1, 246, -1, 233, 248,
744 247, -1, 211, -1, 96, -1, 97, -1, 99, -1,
745 98, -1, 105, -1, 100, -1, 101, -1, 102, -1,
746 103, -1, 104, -1, 247, -1, 249, 196, 247, -1,
747 246, -1, 252, 212, -1, 260, 212, -1, 111, 275,
748 272, 212, -1, 253, 192, -1, 255, -1, 254, -1,
749 255, 257, -1, 254, 196, 257, -1, 262, 79, 191,
750 -1, 271, 79, -1, 271, 79, 193, 250, 194, -1,
751 268, 258, 256, -1, 258, 256, -1, 268, 258, 259,
752 -1, 258, 259, -1, -1, 36, -1, 37, -1, 38,
753 -1, 271, -1, 261, -1, 260, 196, 79, -1, 260,
754 196, 79, 193, 194, -1, 260, 196, 79, 193, 250,
755 194, -1, 260, 196, 79, 193, 194, 211, 281, -1,
756 260, 196, 79, 193, 250, 194, 211, 281, -1, 260,
757 196, 79, 211, 281, -1, 262, -1, 262, 79, -1,
758 262, 79, 193, 194, -1, 262, 79, 193, 250, 194,
759 -1, 262, 79, 193, 194, 211, 281, -1, 262, 79,
760 193, 250, 194, 211, 281, -1, 262, 79, 211, 281,
761 -1, 106, 79, -1, 271, -1, 269, 271, -1, -1,
762 264, -1, 120, 191, 265, 192, -1, 266, -1, 265,
763 196, 266, -1, 79, -1, 43, -1, 42, -1, 41,
764 -1, 4, -1, 270, -1, 267, 269, -1, 106, 269,
765 -1, 4, -1, 3, -1, 263, 40, -1, 35, 40,
766 -1, 263, 36, -1, 37, -1, 35, 36, -1, 35,
767 37, -1, 39, -1, 272, -1, 275, 272, -1, 273,
768 -1, 273, 193, 194, -1, 273, 193, 250, 194, -1,
769 274, -1, 276, -1, 79, -1, 77, -1, 6, -1,
770 7, -1, 8, -1, 5, -1, 29, -1, 30, -1,
771 31, -1, 20, -1, 21, -1, 22, -1, 23, -1,
772 24, -1, 25, -1, 26, -1, 27, -1, 28, -1,
773 32, -1, 33, -1, 34, -1, 44, -1, 45, -1,
774 46, -1, 47, -1, 48, -1, 49, -1, 50, -1,
775 51, -1, 52, -1, 53, -1, 54, -1, 154, -1,
776 55, -1, 56, -1, 57, -1, 58, -1, 156, -1,
777 59, -1, 60, -1, 61, -1, 62, -1, 63, -1,
778 64, -1, 65, -1, 66, -1, 67, -1, 68, -1,
779 69, -1, 70, -1, 71, -1, 72, -1, 73, -1,
780 74, -1, 75, -1, 109, -1, 108, -1, 107, -1,
781 76, 79, 213, 277, 214, -1, 76, 213, 277, 214,
782 -1, 278, -1, 277, 278, -1, 271, 279, 212, -1,
783 280, -1, 279, 196, 280, -1, 79, -1, 79, 193,
784 250, 194, -1, 247, -1, 251, -1, 284, -1, 285,
785 -1, 287, -1, 286, -1, 293, -1, 282, -1, 291,
786 -1, 292, -1, 295, -1, 296, -1, 297, -1, 301,
787 -1, 213, 214, -1, 213, 290, 214, -1, 289, -1,
788 286, -1, 213, 214, -1, 213, 290, 214, -1, 283,
789 -1, 290, 283, -1, 212, -1, 249, 212, -1, 14,
790 191, 249, 192, 284, 12, 284, -1, 14, 191, 249,
791 192, 284, -1, 14, 191, 249, 192, 285, -1, 14,
792 191, 249, 192, 284, 12, 285, -1, 249, -1, 262,
793 79, 211, 281, -1, 17, 191, 249, 192, 287, -1,
794 18, 249, 210, -1, 19, 210, -1, 78, 191, 294,
795 192, 288, -1, 11, 283, 78, 191, 249, 192, 212,
796 -1, 13, 191, 298, 300, 192, 288, -1, 291, -1,
797 282, -1, 294, -1, -1, 299, 212, -1, 299, 212,
798 249, -1, 10, 212, -1, 9, 212, -1, 16, 212,
799 -1, 16, 249, 212, -1, 15, 212, -1, 303, -1,
800 251, -1, 252, 289, -1
803 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
804 static const yytype_uint16 yyrline
[] =
806 0, 209, 209, 208, 217, 220, 237, 239, 243, 252,
807 260, 271, 275, 282, 289, 296, 303, 310, 317, 318,
808 324, 328, 335, 341, 350, 354, 358, 359, 368, 369,
809 373, 374, 378, 384, 396, 400, 406, 413, 424, 425,
810 431, 437, 447, 448, 449, 450, 454, 455, 461, 467,
811 476, 477, 483, 492, 493, 499, 508, 509, 515, 521,
812 527, 536, 537, 543, 552, 553, 562, 563, 572, 573,
813 582, 583, 592, 593, 602, 603, 612, 613, 622, 623,
814 632, 633, 634, 635, 636, 637, 638, 639, 640, 641,
815 642, 646, 650, 666, 670, 674, 678, 692, 696, 697,
816 701, 706, 714, 725, 735, 750, 757, 762, 773, 785,
817 786, 787, 788, 792, 796, 797, 806, 815, 824, 833,
818 842, 855, 866, 875, 884, 893, 902, 911, 920, 934,
819 941, 952, 953, 957, 964, 965, 972, 1006, 1007, 1008,
820 1012, 1016, 1017, 1021, 1029, 1030, 1031, 1032, 1033, 1034,
821 1035, 1036, 1037, 1041, 1042, 1050, 1051, 1057, 1066, 1072,
822 1078, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095,
823 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105,
824 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115,
825 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125,
826 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135,
827 1136, 1137, 1138, 1139, 1140, 1144, 1155, 1166, 1180, 1186,
828 1195, 1200, 1208, 1223, 1228, 1236, 1242, 1251, 1255, 1261,
829 1262, 1266, 1267, 1271, 1275, 1276, 1277, 1278, 1279, 1280,
830 1281, 1285, 1291, 1300, 1301, 1305, 1311, 1320, 1330, 1342,
831 1348, 1357, 1366, 1372, 1378, 1387, 1391, 1405, 1409, 1410,
832 1414, 1421, 1428, 1438, 1439, 1443, 1445, 1451, 1456, 1465,
833 1471, 1477, 1483, 1489, 1498, 1499, 1503
837 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
838 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
839 First, the terminals, then, starting at YYNTOKENS, nonterminals. */
840 static const char *const yytname
[] =
842 "$end", "error", "$undefined", "ATTRIBUTE", "CONST_TOK", "BOOL",
843 "FLOAT", "INT", "UINT", "BREAK", "CONTINUE", "DO", "ELSE", "FOR", "IF",
844 "DISCARD", "RETURN", "SWITCH", "CASE", "DEFAULT", "BVEC2", "BVEC3",
845 "BVEC4", "IVEC2", "IVEC3", "IVEC4", "UVEC2", "UVEC3", "UVEC4", "VEC2",
846 "VEC3", "VEC4", "MAT2", "MAT3", "MAT4", "CENTROID", "IN", "OUT", "INOUT",
847 "UNIFORM", "VARYING", "NOPERSPECTIVE", "FLAT", "SMOOTH", "MAT2X2",
848 "MAT2X3", "MAT2X4", "MAT3X2", "MAT3X3", "MAT3X4", "MAT4X2", "MAT4X3",
849 "MAT4X4", "SAMPLER1D", "SAMPLER2D", "SAMPLER3D", "SAMPLERCUBE",
850 "SAMPLER1DSHADOW", "SAMPLER2DSHADOW", "SAMPLERCUBESHADOW",
851 "SAMPLER1DARRAY", "SAMPLER2DARRAY", "SAMPLER1DARRAYSHADOW",
852 "SAMPLER2DARRAYSHADOW", "ISAMPLER1D", "ISAMPLER2D", "ISAMPLER3D",
853 "ISAMPLERCUBE", "ISAMPLER1DARRAY", "ISAMPLER2DARRAY", "USAMPLER1D",
854 "USAMPLER2D", "USAMPLER3D", "USAMPLERCUBE", "USAMPLER1DARRAY",
855 "USAMPLER2DARRAY", "STRUCT", "VOID", "WHILE", "IDENTIFIER",
856 "FLOATCONSTANT", "INTCONSTANT", "UINTCONSTANT", "BOOLCONSTANT",
857 "FIELD_SELECTION", "LEFT_OP", "RIGHT_OP", "INC_OP", "DEC_OP", "LE_OP",
858 "GE_OP", "EQ_OP", "NE_OP", "AND_OP", "OR_OP", "XOR_OP", "MUL_ASSIGN",
859 "DIV_ASSIGN", "ADD_ASSIGN", "MOD_ASSIGN", "LEFT_ASSIGN", "RIGHT_ASSIGN",
860 "AND_ASSIGN", "XOR_ASSIGN", "OR_ASSIGN", "SUB_ASSIGN", "INVARIANT",
861 "LOWP", "MEDIUMP", "HIGHP", "SUPERP", "PRECISION", "VERSION",
862 "EXTENSION", "LINE", "PRAGMA", "COLON", "EOL", "INTERFACE", "OUTPUT",
863 "LAYOUT_TOK", "ASM", "CLASS", "UNION", "ENUM", "TYPEDEF", "TEMPLATE",
864 "THIS", "PACKED", "GOTO", "INLINE_TOK", "NOINLINE", "VOLATILE",
865 "PUBLIC_TOK", "STATIC", "EXTERN", "EXTERNAL", "LONG", "SHORT", "DOUBLE",
866 "HALF", "FIXED", "UNSIGNED", "INPUT", "OUPTUT", "HVEC2", "HVEC3",
867 "HVEC4", "DVEC2", "DVEC3", "DVEC4", "FVEC2", "FVEC3", "FVEC4",
868 "SAMPLER2DRECT", "SAMPLER3DRECT", "SAMPLER2DRECTSHADOW", "SIZEOF",
869 "CAST", "NAMESPACE", "USING", "ERROR_TOK", "COMMON", "PARTITION",
870 "ACTIVE", "SAMPLERBUFFER", "FILTER", "IMAGE1D", "IMAGE2D", "IMAGE3D",
871 "IMAGECUBE", "IMAGE1DARRAY", "IMAGE2DARRAY", "IIMAGE1D", "IIMAGE2D",
872 "IIMAGE3D", "IIMAGECUBE", "IIMAGE1DARRAY", "IIMAGE2DARRAY", "UIMAGE1D",
873 "UIMAGE2D", "UIMAGE3D", "UIMAGECUBE", "UIMAGE1DARRAY", "UIMAGE2DARRAY",
874 "IMAGE1DSHADOW", "IMAGE2DSHADOW", "IMAGEBUFFER", "IIMAGEBUFFER",
875 "UIMAGEBUFFER", "ROW_MAJOR", "'('", "')'", "'['", "']'", "'.'", "','",
876 "'+'", "'-'", "'!'", "'~'", "'*'", "'/'", "'%'", "'<'", "'>'", "'&'",
877 "'^'", "'|'", "'?'", "':'", "'='", "';'", "'{'", "'}'", "$accept",
878 "translation_unit", "$@1", "version_statement",
879 "extension_statement_list", "extension_statement",
880 "external_declaration_list", "variable_identifier", "primary_expression",
881 "postfix_expression", "integer_expression", "function_call",
882 "function_call_or_method", "function_call_generic",
883 "function_call_header_no_parameters",
884 "function_call_header_with_parameters", "function_call_header",
885 "function_identifier", "unary_expression", "unary_operator",
886 "multiplicative_expression", "additive_expression", "shift_expression",
887 "relational_expression", "equality_expression", "and_expression",
888 "exclusive_or_expression", "inclusive_or_expression",
889 "logical_and_expression", "logical_xor_expression",
890 "logical_or_expression", "conditional_expression",
891 "assignment_expression", "assignment_operator", "expression",
892 "constant_expression", "declaration", "function_prototype",
893 "function_declarator", "function_header_with_parameters",
894 "function_header", "parameter_declarator", "parameter_declaration",
895 "parameter_qualifier", "parameter_type_specifier",
896 "init_declarator_list", "single_declaration", "fully_specified_type",
897 "opt_layout_qualifier", "layout_qualifier", "layout_qualifier_id_list",
898 "layout_qualifier_id", "interpolation_qualifier",
899 "parameter_type_qualifier", "type_qualifier", "storage_qualifier",
900 "type_specifier", "type_specifier_no_prec", "type_specifier_nonarray",
901 "basic_type_specifier_nonarray", "precision_qualifier",
902 "struct_specifier", "struct_declaration_list", "struct_declaration",
903 "struct_declarator_list", "struct_declarator", "initializer",
904 "declaration_statement", "statement", "statement_matched",
905 "statement_unmatched", "simple_statement", "compound_statement",
906 "statement_no_new_scope", "compound_statement_no_new_scope",
907 "statement_list", "expression_statement", "selection_statement_matched",
908 "selection_statement_unmatched", "condition", "switch_statement",
909 "case_label", "iteration_statement", "for_init_statement",
910 "conditionopt", "for_rest_statement", "jump_statement",
911 "external_declaration", "function_definition", 0
916 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
918 static const yytype_uint16 yytoknum
[] =
920 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
921 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
922 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
923 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
924 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
925 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
926 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
927 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
928 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
929 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
930 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
931 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
932 375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
933 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
934 395, 396, 397, 398, 399, 400, 401, 402, 403, 404,
935 405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
936 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
937 425, 426, 427, 428, 429, 430, 431, 432, 433, 434,
938 435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
939 445, 40, 41, 91, 93, 46, 44, 43, 45, 33,
940 126, 42, 47, 37, 60, 62, 38, 94, 124, 63,
945 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
946 static const yytype_uint16 yyr1
[] =
948 0, 215, 217, 216, 218, 218, 219, 219, 220, 221,
949 221, 222, 223, 223, 223, 223, 223, 223, 224, 224,
950 224, 224, 224, 224, 225, 226, 227, 227, 228, 228,
951 229, 229, 230, 230, 231, 232, 232, 232, 233, 233,
952 233, 233, 234, 234, 234, 234, 235, 235, 235, 235,
953 236, 236, 236, 237, 237, 237, 238, 238, 238, 238,
954 238, 239, 239, 239, 240, 240, 241, 241, 242, 242,
955 243, 243, 244, 244, 245, 245, 246, 246, 247, 247,
956 248, 248, 248, 248, 248, 248, 248, 248, 248, 248,
957 248, 249, 249, 250, 251, 251, 251, 252, 253, 253,
958 254, 254, 255, 256, 256, 257, 257, 257, 257, 258,
959 258, 258, 258, 259, 260, 260, 260, 260, 260, 260,
960 260, 261, 261, 261, 261, 261, 261, 261, 261, 262,
961 262, 263, 263, 264, 265, 265, 266, 267, 267, 267,
962 268, 269, 269, 269, 270, 270, 270, 270, 270, 270,
963 270, 270, 270, 271, 271, 272, 272, 272, 273, 273,
964 273, 274, 274, 274, 274, 274, 274, 274, 274, 274,
965 274, 274, 274, 274, 274, 274, 274, 274, 274, 274,
966 274, 274, 274, 274, 274, 274, 274, 274, 274, 274,
967 274, 274, 274, 274, 274, 274, 274, 274, 274, 274,
968 274, 274, 274, 274, 274, 274, 274, 274, 274, 274,
969 274, 274, 274, 274, 274, 275, 275, 275, 276, 276,
970 277, 277, 278, 279, 279, 280, 280, 281, 282, 283,
971 283, 284, 284, 285, 286, 286, 286, 286, 286, 286,
972 286, 287, 287, 288, 288, 289, 289, 290, 290, 291,
973 291, 292, 293, 293, 293, 294, 294, 295, 296, 296,
974 297, 297, 297, 298, 298, 299, 299, 300, 300, 301,
975 301, 301, 301, 301, 302, 302, 303
978 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
979 static const yytype_uint8 yyr2
[] =
981 0, 2, 0, 4, 0, 3, 0, 2, 5, 1,
982 2, 1, 1, 1, 1, 1, 1, 3, 1, 4,
983 1, 3, 2, 2, 1, 1, 1, 3, 2, 2,
984 2, 1, 2, 3, 2, 1, 1, 1, 1, 2,
985 2, 2, 1, 1, 1, 1, 1, 3, 3, 3,
986 1, 3, 3, 1, 3, 3, 1, 3, 3, 3,
987 3, 1, 3, 3, 1, 3, 1, 3, 1, 3,
988 1, 3, 1, 3, 1, 3, 1, 5, 1, 3,
989 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
990 1, 1, 3, 1, 2, 2, 4, 2, 1, 1,
991 2, 3, 3, 2, 5, 3, 2, 3, 2, 0,
992 1, 1, 1, 1, 1, 3, 5, 6, 7, 8,
993 5, 1, 2, 4, 5, 6, 7, 4, 2, 1,
994 2, 0, 1, 4, 1, 3, 1, 1, 1, 1,
995 1, 1, 2, 2, 1, 1, 2, 2, 2, 1,
996 2, 2, 1, 1, 2, 1, 3, 4, 1, 1,
997 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
998 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
999 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1000 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1001 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1002 1, 1, 1, 1, 1, 1, 1, 1, 5, 4,
1003 1, 2, 3, 1, 3, 1, 4, 1, 1, 1,
1004 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1005 1, 2, 3, 1, 1, 2, 3, 1, 2, 1,
1006 2, 7, 5, 5, 7, 1, 4, 5, 3, 2,
1007 5, 7, 6, 1, 1, 1, 0, 2, 3, 2,
1011 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
1012 STATE-NUM when YYTABLE doesn't specify something else to do. Zero
1013 means the default is an error. */
1014 static const yytype_uint16 yydefact
[] =
1016 4, 0, 0, 6, 0, 1, 2, 5, 0, 131,
1017 7, 0, 145, 144, 165, 162, 163, 164, 169, 170,
1018 171, 172, 173, 174, 175, 176, 177, 166, 167, 168,
1019 178, 179, 180, 0, 149, 152, 139, 138, 137, 181,
1020 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
1021 193, 194, 195, 196, 198, 199, 200, 201, 202, 203,
1022 204, 205, 206, 207, 208, 209, 210, 211, 212, 213,
1023 214, 0, 161, 160, 131, 217, 216, 215, 0, 0,
1024 192, 197, 131, 275, 0, 0, 99, 109, 0, 114,
1025 121, 0, 132, 131, 0, 141, 129, 153, 155, 158,
1026 0, 159, 9, 274, 0, 150, 151, 147, 0, 0,
1027 128, 131, 143, 0, 0, 10, 94, 131, 276, 97,
1028 109, 140, 110, 111, 112, 100, 0, 109, 0, 95,
1029 122, 148, 146, 142, 130, 0, 154, 0, 0, 0,
1030 0, 220, 0, 136, 0, 134, 0, 0, 131, 0,
1031 0, 0, 0, 0, 0, 0, 0, 11, 15, 13,
1032 14, 16, 37, 0, 0, 0, 42, 43, 44, 45,
1033 249, 131, 245, 12, 18, 38, 20, 25, 26, 0,
1034 0, 31, 0, 46, 0, 50, 53, 56, 61, 64,
1035 66, 68, 70, 72, 74, 76, 78, 91, 0, 228,
1036 0, 129, 234, 247, 229, 230, 232, 231, 131, 235,
1037 236, 233, 237, 238, 239, 240, 101, 106, 108, 113,
1038 0, 115, 102, 0, 0, 156, 46, 93, 0, 35,
1039 8, 0, 225, 0, 223, 219, 221, 96, 133, 0,
1040 270, 269, 0, 131, 0, 273, 271, 0, 0, 0,
1041 259, 131, 39, 40, 0, 241, 131, 22, 23, 0,
1042 0, 29, 28, 0, 161, 32, 34, 81, 82, 84,
1043 83, 86, 87, 88, 89, 90, 85, 80, 0, 41,
1044 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1045 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1046 0, 250, 246, 248, 103, 105, 107, 0, 0, 123,
1047 0, 227, 127, 157, 218, 0, 0, 222, 135, 0,
1048 264, 263, 131, 0, 272, 0, 258, 255, 0, 0,
1049 17, 242, 0, 24, 21, 27, 33, 79, 47, 48,
1050 49, 51, 52, 54, 55, 59, 60, 57, 58, 62,
1051 63, 65, 67, 69, 71, 73, 75, 0, 92, 0,
1052 116, 0, 120, 0, 124, 0, 224, 0, 265, 0,
1053 0, 131, 0, 0, 131, 19, 0, 0, 0, 117,
1054 125, 0, 226, 0, 267, 131, 252, 253, 257, 0,
1055 0, 244, 260, 243, 77, 104, 118, 0, 126, 0,
1056 268, 262, 131, 256, 0, 119, 261, 251, 254, 0,
1060 /* YYDEFGOTO[NTERM-NUM]. */
1061 static const yytype_int16 yydefgoto
[] =
1063 -1, 2, 9, 3, 6, 10, 82, 173, 174, 175,
1064 332, 176, 177, 178, 179, 180, 181, 182, 183, 184,
1065 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
1066 195, 196, 197, 278, 198, 228, 199, 200, 85, 86,
1067 87, 217, 125, 126, 218, 88, 89, 90, 91, 92,
1068 144, 145, 93, 127, 94, 95, 229, 97, 98, 99,
1069 100, 101, 140, 141, 233, 234, 312, 202, 203, 204,
1070 205, 206, 207, 392, 393, 208, 209, 210, 211, 329,
1071 212, 213, 214, 322, 369, 370, 215, 102, 103
1074 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1076 #define YYPACT_NINF -361
1077 static const yytype_int16 yypact
[] =
1079 -51, -15, 81, -361, -34, -361, -24, -361, 25, 3891,
1080 -361, -19, -361, -361, -361, -361, -361, -361, -361, -361,
1081 -361, -361, -361, -361, -361, -361, -361, -361, -361, -361,
1082 -361, -361, -361, 69, -361, -361, -361, -361, -361, -361,
1083 -361, -361, -361, -361, -361, -361, -361, -361, -361, -361,
1084 -361, -361, -361, -361, -361, -361, -361, -361, -361, -361,
1085 -361, -361, -361, -361, -361, -361, -361, -361, -361, -361,
1086 -361, -78, -361, -361, 8, -361, -361, -361, 49, -80,
1087 -361, -361, 3773, -361, -177, -79, -55, 2, -168, -361,
1088 70, 56, -361, 28, 4120, -361, -361, -361, -39, -361,
1089 4233, -361, -361, -361, 80, -361, -361, -361, -67, 4120,
1090 -361, 28, -361, 4233, 95, -361, -361, 401, -361, -361,
1091 18, -361, -361, -361, -361, -361, 4120, 176, 116, -361,
1092 -113, -361, -361, -361, -361, 2868, -361, 86, 4120, 126,
1093 2263, -361, 9, -361, -89, -361, 17, 24, 1249, 46,
1094 47, 27, 2489, 52, 3411, 30, 53, -70, -361, -361,
1095 -361, -361, -361, 3411, 3411, 3411, -361, -361, -361, -361,
1096 -361, 613, -361, -361, -361, -69, -361, -361, -361, 54,
1097 -76, 3592, 59, 67, 3411, 22, 0, 115, -82, 125,
1098 39, 44, 45, 159, 161, -90, -361, -361, -159, -361,
1099 48, 66, -361, -361, -361, -361, -361, -361, 825, -361,
1100 -361, -361, -361, -361, -361, -361, -361, -361, -361, 179,
1101 4120, -170, -361, 3049, 3411, -361, -361, -361, 65, -361,
1102 -361, 2376, 68, -122, -361, -361, -361, -361, -361, 95,
1103 -361, -361, 184, 1869, 3411, -361, -361, -121, 3411, -162,
1104 -361, 2687, -361, -361, -60, -361, 1037, -361, -361, 3411,
1105 4007, -361, -361, 3411, 71, -361, -361, -361, -361, -361,
1106 -361, -361, -361, -361, -361, -361, -361, -361, 3411, -361,
1107 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1108 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1109 3411, -361, -361, -361, 72, -361, -361, 3230, 3411, 55,
1110 73, -361, -361, -361, -361, 3411, 126, -361, -361, 77,
1111 -361, -361, 2067, -59, -361, -52, -361, 74, 185, 79,
1112 -361, -361, 75, 74, 82, -361, -361, -361, -361, -361,
1113 -361, 22, 22, 0, 0, 115, 115, 115, 115, -82,
1114 -82, 125, 39, 44, 45, 159, 161, -128, -361, 3411,
1115 61, 83, -361, 3411, 63, 85, -361, 3411, -361, 64,
1116 88, 1249, 62, 76, 1460, -361, 3411, 87, 3411, 78,
1117 -361, 3411, -361, -49, 3411, 1460, 270, -361, -361, 3411,
1118 92, -361, -361, -361, -361, -361, -361, 3411, -361, 84,
1119 74, -361, 1249, -361, 3411, -361, -361, -361, -361, -41,
1123 /* YYPGOTO[NTERM-NUM]. */
1124 static const yytype_int16 yypgoto
[] =
1126 -361, -361, -361, -361, -361, -361, -361, -361, -361, -361,
1127 -361, -361, -361, 26, -361, -361, -361, -361, -105, -361,
1128 -64, -54, -81, -65, -8, -6, -5, -4, -3, -7,
1129 -361, -111, -148, -361, -149, -221, 6, 11, -361, -361,
1130 -361, 89, 173, 168, 90, -361, -361, -238, -361, -361,
1131 -361, 58, -361, -361, -47, -361, -9, -71, -361, -361,
1132 220, -361, 162, -130, -361, -17, -236, 60, -131, -350,
1133 -345, -360, -68, -84, 218, 134, 91, -361, -361, -16,
1134 -361, -361, -361, -361, -361, -361, -361, 225, -361
1137 /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
1138 positive, shift that token. If negative, reduce the rule which
1139 number is the opposite. If zero, do what YYDEFACT says.
1140 If YYTABLE_NINF, syntax error. */
1141 #define YYTABLE_NINF -267
1142 static const yytype_int16 yytable
[] =
1144 96, 108, 310, 247, 298, 249, 121, 287, 288, -160,
1145 236, 12, 13, 328, 391, 83, 254, 242, 257, 258,
1146 84, 386, 121, 307, 227, 391, 387, 112, 128, 136,
1147 226, 12, 13, 265, 300, 116, 117, 300, 122, 123,
1148 124, 308, 142, 33, 129, 34, 133, 35, 326, 36,
1149 37, 38, 407, 301, 122, 123, 124, 408, 252, 253,
1150 411, 1, 407, 33, 112, 34, 4, 35, 300, 36,
1151 37, 38, 362, 96, 316, 300, 311, 303, 222, 279,
1152 223, 5, 376, 7, 328, 134, 361, 110, 83, 8,
1153 317, 324, 131, 84, 365, 323, 132, 104, 224, 325,
1154 139, 236, 327, 238, 11, 105, 106, 239, 201, 107,
1155 333, 114, 227, 119, 111, 336, 262, 219, 226, 299,
1156 263, -36, 289, 290, 259, 303, 260, 380, 79, 139,
1157 337, 139, 330, 371, 111, 109, 300, 300, 377, 201,
1158 372, 120, 396, 399, 300, 398, 138, 300, 79, 130,
1159 357, 410, 358, 403, 135, 300, 75, 76, 77, 137,
1160 311, 405, 201, 267, 268, 269, 270, 271, 272, 273,
1161 274, 275, 276, 327, 143, 338, 339, 340, 226, 226,
1162 226, 226, 226, 226, 226, 226, 226, 226, 226, 226,
1163 226, 226, 226, 226, -98, 221, 227, 283, 284, 201,
1164 285, 286, 226, 230, 227, 232, 345, 346, 347, 348,
1165 226, 219, 122, 123, 124, 311, 291, 292, 383, 341,
1166 342, 237, 139, 280, 281, 282, 349, 350, 394, 240,
1167 311, 343, 344, 311, 201, 400, 241, 243, 244, 245,
1168 250, 311, 201, 248, 251, 293, 261, 201, 227, 311,
1169 266, 294, 296, 295, 226, 409, 297, -35, 304, 313,
1170 116, 315, 319, -30, 373, 359, 363, 364, 367, 375,
1171 300, 374, 378, -36, 381, 171, 384, 379, 277, 382,
1172 385, 395, 402, 404, 412, 351, 335, 389, 352, 397,
1173 353, 356, 354, 216, 355, 220, 406, 318, 113, 366,
1174 231, 401, 118, 320, 388, 256, 368, 115, 0, 305,
1175 306, 0, 0, 201, 0, 0, 0, 0, 0, 0,
1176 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1177 0, 0, 0, 0, 321, 0, 0, 0, 0, 0,
1178 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1179 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1180 0, 0, 201, 0, 0, 201, 0, 0, 0, 0,
1181 0, 0, 0, 0, 0, 0, 201, 0, 0, 0,
1182 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1183 0, 0, 0, 201, 0, 0, 0, 0, 0, 0,
1184 0, 201, 0, 201, 12, 13, 14, 15, 16, 17,
1185 146, 147, 148, 0, 149, 150, 151, 152, 153, 154,
1186 155, 18, 19, 20, 21, 22, 23, 24, 25, 26,
1187 27, 28, 29, 30, 31, 32, 33, 0, 34, 0,
1188 35, 0, 36, 37, 38, 39, 40, 41, 42, 43,
1189 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1190 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1191 64, 65, 66, 67, 68, 69, 70, 71, 72, 156,
1192 157, 158, 159, 160, 161, 162, 0, 0, 163, 164,
1193 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1194 0, 0, 0, 0, 0, 0, 0, 74, 75, 76,
1195 77, 0, 78, 0, 0, 0, 0, 0, 0, 0,
1196 0, 79, 0, 0, 0, 0, 0, 0, 0, 0,
1197 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1198 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1199 0, 0, 0, 0, 0, 80, 0, 81, 0, 0,
1200 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1201 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1202 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1203 0, 0, 165, 0, 0, 0, 0, 0, 166, 167,
1204 168, 169, 0, 0, 0, 0, 0, 0, 0, 0,
1205 0, 0, 0, 170, 171, 172, 12, 13, 14, 15,
1206 16, 17, 146, 147, 148, 0, 149, 150, 151, 152,
1207 153, 154, 155, 18, 19, 20, 21, 22, 23, 24,
1208 25, 26, 27, 28, 29, 30, 31, 32, 33, 0,
1209 34, 0, 35, 0, 36, 37, 38, 39, 40, 41,
1210 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1211 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1212 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1213 72, 156, 157, 158, 159, 160, 161, 162, 0, 0,
1214 163, 164, 0, 0, 0, 0, 0, 0, 0, 0,
1215 0, 0, 0, 0, 0, 0, 0, 0, 0, 74,
1216 75, 76, 77, 0, 78, 0, 0, 0, 0, 0,
1217 0, 0, 0, 79, 0, 0, 0, 0, 0, 0,
1218 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1219 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1220 0, 0, 0, 0, 0, 0, 0, 80, 0, 81,
1221 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1222 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1223 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1224 0, 0, 0, 0, 165, 0, 0, 0, 0, 0,
1225 166, 167, 168, 169, 0, 0, 0, 0, 0, 0,
1226 0, 0, 0, 0, 0, 170, 171, 255, 12, 13,
1227 14, 15, 16, 17, 146, 147, 148, 0, 149, 150,
1228 151, 152, 153, 154, 155, 18, 19, 20, 21, 22,
1229 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
1230 33, 0, 34, 0, 35, 0, 36, 37, 38, 39,
1231 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1232 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1233 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1234 70, 71, 72, 156, 157, 158, 159, 160, 161, 162,
1235 0, 0, 163, 164, 0, 0, 0, 0, 0, 0,
1236 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1237 0, 74, 75, 76, 77, 0, 78, 0, 0, 0,
1238 0, 0, 0, 0, 0, 79, 0, 0, 0, 0,
1239 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1240 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1241 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,
1242 0, 81, 0, 0, 0, 0, 0, 0, 0, 0,
1243 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1244 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1245 0, 0, 0, 0, 0, 0, 165, 0, 0, 0,
1246 0, 0, 166, 167, 168, 169, 0, 0, 0, 0,
1247 0, 0, 0, 0, 0, 0, 0, 170, 171, 302,
1248 12, 13, 14, 15, 16, 17, 146, 147, 148, 0,
1249 149, 150, 151, 152, 153, 154, 155, 18, 19, 20,
1250 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
1251 31, 32, 33, 0, 34, 0, 35, 0, 36, 37,
1252 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1253 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1254 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1255 68, 69, 70, 71, 72, 156, 157, 158, 159, 160,
1256 161, 162, 0, 0, 163, 164, 0, 0, 0, 0,
1257 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1258 0, 0, 0, 74, 75, 76, 77, 0, 78, 0,
1259 0, 0, 0, 0, 0, 0, 0, 79, 0, 0,
1260 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1261 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1262 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1263 0, 80, 0, 81, 0, 0, 0, 0, 0, 0,
1264 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1265 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1266 0, 0, 0, 0, 0, 0, 0, 0, 165, 0,
1267 0, 0, 0, 0, 166, 167, 168, 169, 0, 0,
1268 0, 0, 0, 0, 0, 0, 0, 0, 0, 170,
1269 171, 331, 12, 13, 14, 15, 16, 17, 146, 147,
1270 148, 0, 149, 150, 151, 152, 153, 154, 155, 18,
1271 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1272 29, 30, 31, 32, 33, 0, 34, 0, 35, 0,
1273 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
1274 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1275 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1276 66, 67, 68, 69, 70, 71, 72, 156, 157, 158,
1277 159, 160, 161, 162, 0, 0, 163, 164, 0, 0,
1278 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1279 0, 0, 0, 0, 0, 74, 75, 76, 77, 0,
1280 78, 0, 0, 0, 0, 0, 0, 0, 0, 79,
1281 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1282 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1283 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1284 0, 0, 0, 80, 0, 81, 0, 0, 0, 0,
1285 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1286 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1287 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1288 165, 0, 0, 0, 0, 0, 166, 167, 168, 169,
1289 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1290 0, 170, 171, 12, 13, 14, 15, 16, 17, 146,
1291 147, 148, 0, 149, 390, 151, 152, 153, 154, 155,
1292 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
1293 28, 29, 30, 31, 32, 33, 0, 34, 0, 35,
1294 0, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1295 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1296 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1297 65, 66, 67, 68, 69, 70, 71, 72, 156, 157,
1298 158, 159, 160, 161, 162, 0, 0, 163, 164, 0,
1299 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1300 0, 0, 0, 0, 0, 0, 74, 75, 76, 77,
1301 0, 78, 0, 0, 0, 0, 0, 0, 0, 0,
1302 79, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1303 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1304 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1305 0, 0, 0, 0, 80, 0, 81, 0, 0, 0,
1306 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1307 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1308 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1309 0, 165, 0, 0, 0, 0, 0, 166, 167, 168,
1310 169, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1311 0, 0, 170, 117, 12, 13, 14, 15, 16, 17,
1312 146, 147, 148, 0, 149, 390, 151, 152, 153, 154,
1313 155, 18, 19, 20, 21, 22, 23, 24, 25, 26,
1314 27, 28, 29, 30, 31, 32, 33, 0, 34, 0,
1315 35, 0, 36, 37, 38, 39, 40, 41, 42, 43,
1316 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1317 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1318 64, 65, 66, 67, 68, 69, 70, 71, 72, 156,
1319 157, 158, 159, 160, 161, 162, 0, 0, 163, 164,
1320 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1321 0, 0, 0, 0, 0, 0, 0, 74, 75, 76,
1322 77, 0, 78, 0, 0, 0, 0, 0, 0, 0,
1323 0, 79, 0, 0, 0, 0, 0, 0, 0, 0,
1324 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1325 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1326 0, 0, 0, 0, 0, 80, 0, 81, 0, 0,
1327 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1328 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1329 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1330 0, 0, 165, 0, 0, 0, 0, 0, 166, 167,
1331 168, 169, 12, 13, 14, 15, 16, 17, 0, 0,
1332 0, 0, 0, 170, 171, 0, 0, 0, 0, 18,
1333 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1334 29, 30, 31, 32, 33, 0, 34, 0, 35, 0,
1335 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
1336 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1337 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1338 66, 67, 68, 69, 70, 71, 72, 0, 157, 158,
1339 159, 160, 161, 162, 0, 0, 163, 164, 0, 0,
1340 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1341 0, 0, 0, 0, 0, 74, 75, 76, 77, 0,
1342 78, 0, 0, 0, 0, 0, 0, 0, 0, 79,
1343 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1344 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1345 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1346 0, 0, 0, 80, 0, 81, 0, 0, 0, 0,
1347 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1348 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1349 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1350 165, 0, 0, 0, 0, 0, 166, 167, 168, 169,
1351 12, 13, 14, 15, 16, 17, 0, 0, 0, 0,
1352 0, 170, 0, 0, 0, 0, 0, 18, 19, 20,
1353 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
1354 31, 32, 33, 0, 34, 0, 35, 0, 36, 37,
1355 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1356 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1357 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1358 68, 69, 70, 71, 72, 0, 157, 158, 159, 160,
1359 161, 162, 0, 0, 163, 164, 0, 0, 0, 0,
1360 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1361 0, 0, 0, 111, 75, 76, 77, 0, 0, 0,
1362 0, 0, 0, 0, 0, 0, 0, 79, 0, 0,
1363 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1364 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1365 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1366 0, 80, 0, 81, 0, 0, 0, 0, 0, 0,
1367 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1368 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1369 0, 0, 0, 0, 0, 0, 0, 0, 165, 0,
1370 0, 0, 0, 0, 166, 167, 168, 169, 14, 15,
1371 16, 17, 0, 0, 0, 0, 0, 0, 0, -266,
1372 0, 0, 0, 18, 19, 20, 21, 22, 23, 24,
1373 25, 26, 27, 28, 29, 30, 31, 32, 0, 0,
1374 0, 0, 0, 0, 0, 0, 0, 39, 40, 41,
1375 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1376 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1377 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1378 72, 0, 73, 0, 0, 0, 0, 0, 0, 0,
1379 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1380 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1381 75, 76, 77, 0, 0, 0, 0, 0, 0, 0,
1382 0, 14, 15, 16, 17, 0, 0, 0, 0, 0,
1383 0, 0, 0, 0, 0, 0, 18, 19, 20, 21,
1384 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
1385 32, 0, 0, 0, 0, 0, 0, 80, 0, 81,
1386 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1387 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1388 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1389 69, 70, 71, 72, 0, 73, 0, 0, 0, 0,
1390 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1391 0, 0, 0, 0, 0, 0, 0, 235, 0, 0,
1392 0, 0, 0, 75, 76, 77, 0, 0, 0, 0,
1393 0, 0, 0, 0, 14, 15, 16, 17, 0, 0,
1394 0, 0, 0, 0, 0, 0, 0, 0, 0, 18,
1395 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1396 29, 30, 31, 32, 0, 0, 0, 0, 0, 0,
1397 80, 0, 81, 39, 40, 41, 42, 43, 44, 45,
1398 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1399 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1400 66, 67, 68, 69, 70, 71, 72, 0, 157, 158,
1401 159, 160, 161, 162, 0, 0, 163, 164, 0, 0,
1402 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1403 314, 0, 0, 0, 0, 0, 75, 76, 77, 0,
1404 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1405 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1406 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1407 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1408 0, 0, 0, 80, 0, 81, 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 165, 0, 0, 0, 0, 0, 166, 167, 168, 169,
1413 12, 13, 14, 15, 16, 17, 0, 0, 0, 0,
1414 0, 246, 0, 0, 0, 0, 0, 18, 19, 20,
1415 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
1416 31, 32, 33, 0, 34, 0, 35, 0, 36, 37,
1417 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1418 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1419 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1420 68, 69, 70, 71, 72, 0, 157, 158, 159, 160,
1421 161, 162, 0, 0, 163, 164, 0, 0, 0, 0,
1422 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1423 0, 0, 0, 111, 75, 76, 77, 0, 0, 0,
1424 0, 0, 0, 0, 0, 0, 0, 79, 0, 0,
1425 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1426 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1427 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1428 0, 80, 0, 81, 0, 0, 0, 0, 0, 0,
1429 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1430 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1431 0, 0, 0, 14, 15, 16, 17, 0, 165, 0,
1432 0, 0, 0, 0, 166, 167, 168, 169, 18, 19,
1433 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
1434 30, 31, 32, 0, 0, 0, 0, 0, 0, 0,
1435 0, 0, 39, 40, 41, 42, 43, 44, 45, 46,
1436 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1437 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1438 67, 68, 69, 70, 71, 72, 0, 157, 158, 159,
1439 160, 161, 162, 0, 0, 163, 164, 0, 0, 0,
1440 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1441 0, 0, 0, 0, 0, 75, 76, 77, 0, 0,
1442 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1443 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1444 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1445 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1446 0, 0, 80, 0, 81, 0, 0, 0, 0, 0,
1447 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1448 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1449 0, 0, 0, 0, 14, 15, 16, 17, 0, 165,
1450 0, 0, 225, 0, 0, 166, 167, 168, 169, 18,
1451 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1452 29, 30, 31, 32, 0, 0, 0, 0, 0, 0,
1453 0, 0, 0, 39, 40, 41, 42, 43, 44, 45,
1454 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1455 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1456 66, 67, 68, 69, 70, 71, 72, 0, 157, 158,
1457 159, 160, 161, 162, 0, 0, 163, 164, 0, 0,
1458 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1459 0, 0, 0, 0, 0, 0, 75, 76, 77, 0,
1460 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1461 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1462 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1463 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1464 0, 0, 0, 80, 0, 81, 0, 0, 0, 0,
1465 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1466 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1467 0, 0, 0, 0, 0, 14, 15, 16, 17, 0,
1468 165, 0, 0, 309, 0, 0, 166, 167, 168, 169,
1469 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
1470 28, 29, 30, 31, 32, 0, 0, 0, 0, 0,
1471 0, 0, 0, 0, 39, 40, 41, 42, 43, 44,
1472 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1473 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1474 65, 66, 67, 68, 69, 70, 71, 72, 0, 157,
1475 158, 159, 160, 161, 162, 0, 0, 163, 164, 0,
1476 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1477 0, 0, 0, 0, 0, 0, 0, 75, 76, 77,
1478 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1479 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1480 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1481 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1482 0, 0, 0, 0, 80, 0, 81, 0, 0, 0,
1483 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1484 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1485 0, 0, 0, 0, 0, 0, 14, 15, 16, 17,
1486 0, 165, 0, 0, 360, 0, 0, 166, 167, 168,
1487 169, 18, 19, 20, 21, 22, 23, 24, 25, 26,
1488 27, 28, 29, 30, 31, 32, 0, 0, 0, 0,
1489 0, 0, 0, 0, 0, 39, 40, 41, 42, 43,
1490 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1491 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1492 64, 65, 66, 67, 68, 69, 70, 71, 72, 0,
1493 157, 158, 159, 160, 161, 162, 0, 0, 163, 164,
1494 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1495 0, 0, 0, 0, 0, 0, 0, 0, 75, 76,
1496 77, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1497 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1498 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1499 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1500 0, 0, 0, 0, 0, 80, 0, 81, 0, 0,
1501 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1502 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1503 0, 0, 0, 0, 0, 0, 0, 14, 15, 16,
1504 17, 0, 165, 0, 0, 0, 0, 0, 166, 167,
1505 168, 169, 18, 19, 20, 21, 22, 23, 24, 25,
1506 26, 27, 28, 29, 30, 31, 32, 0, 0, 0,
1507 0, 0, 0, 0, 0, 0, 39, 40, 41, 42,
1508 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1509 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1510 63, 64, 65, 66, 67, 68, 69, 70, 71, 264,
1511 0, 157, 158, 159, 160, 161, 162, 0, 0, 163,
1512 164, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1513 0, 0, 0, 0, 0, 0, 0, 0, 0, 75,
1514 76, 77, 0, 0, 0, 0, 0, 0, 0, 0,
1515 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1516 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1517 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1518 0, 0, 0, 0, 0, 0, 80, 0, 81, 0,
1519 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1520 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1521 0, 0, 0, -3, 0, 0, 12, 13, 14, 15,
1522 16, 17, 0, 165, 0, 0, 0, 0, 0, 166,
1523 167, 168, 169, 18, 19, 20, 21, 22, 23, 24,
1524 25, 26, 27, 28, 29, 30, 31, 32, 33, 0,
1525 34, 0, 35, 0, 36, 37, 38, 39, 40, 41,
1526 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1527 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1528 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1529 72, 0, 73, 0, 0, 0, 0, 0, 0, 0,
1530 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1531 0, 0, 0, 0, 0, 0, 0, 0, 0, 74,
1532 75, 76, 77, 0, 78, 0, 0, 0, 0, 0,
1533 0, 0, 0, 79, 12, 13, 14, 15, 16, 17,
1534 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1535 0, 18, 19, 20, 21, 22, 23, 24, 25, 26,
1536 27, 28, 29, 30, 31, 32, 33, 80, 34, 81,
1537 35, 0, 36, 37, 38, 39, 40, 41, 42, 43,
1538 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1539 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1540 64, 65, 66, 67, 68, 69, 70, 71, 72, 0,
1541 73, 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, 74, 75, 76,
1544 77, 0, 78, 0, 0, 0, 0, 0, 0, 0,
1545 0, 79, 14, 15, 16, 17, 0, 0, 0, 0,
1546 0, 0, 0, 0, 0, 0, 0, 18, 19, 20,
1547 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
1548 31, 32, 0, 0, 0, 80, 0, 81, 0, 0,
1549 0, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1550 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1551 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1552 68, 69, 70, 71, 72, 0, 334, 0, 0, 0,
1553 0, 162, 0, 0, 0, 0, 0, 0, 0, 0,
1554 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1555 0, 0, 0, 0, 75, 76, 77, 0, 0, 0,
1556 0, 0, 0, 0, 0, 14, 15, 16, 17, 0,
1557 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1558 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
1559 28, 29, 30, 31, 32, 0, 0, 0, 0, 0,
1560 0, 80, 0, 81, 39, 40, 41, 42, 43, 44,
1561 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1562 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1563 65, 66, 67, 68, 69, 70, 71, 72, 0, 73,
1564 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1565 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1566 0, 0, 0, 0, 0, 0, 0, 75, 76, 77,
1567 0, 0, 0, 0, 0, 0, 0, 0, 14, 15,
1568 16, 17, 0, 0, 0, 0, 0, 0, 0, 0,
1569 0, 0, 0, 18, 19, 20, 21, 22, 23, 24,
1570 25, 26, 27, 28, 29, 30, 31, 32, 0, 0,
1571 0, 0, 0, 0, 80, 0, 81, 39, 40, 41,
1572 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1573 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1574 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1575 72, 0, 73, 0, 0, 0, 0, 0, 0, 0,
1576 0, 0, 0, 0, 0, 0, 0, 0, 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, 80, 0, 81
1585 static const yytype_int16 yycheck
[] =
1587 9, 79, 223, 152, 94, 154, 4, 89, 90, 79,
1588 140, 3, 4, 251, 374, 9, 165, 148, 87, 88,
1589 9, 371, 4, 193, 135, 385, 371, 74, 196, 100,
1590 135, 3, 4, 181, 196, 212, 213, 196, 36, 37,
1591 38, 211, 113, 35, 212, 37, 93, 39, 210, 41,
1592 42, 43, 402, 212, 36, 37, 38, 402, 163, 164,
1593 410, 112, 412, 35, 111, 37, 81, 39, 196, 41,
1594 42, 43, 308, 82, 196, 196, 224, 208, 191, 184,
1595 193, 0, 210, 117, 322, 94, 307, 79, 82, 113,
1596 212, 212, 36, 82, 315, 244, 40, 116, 211, 248,
1597 109, 231, 251, 192, 79, 36, 37, 196, 117, 40,
1598 259, 191, 223, 192, 106, 263, 192, 126, 223, 209,
1599 196, 191, 204, 205, 193, 256, 195, 363, 120, 138,
1600 278, 140, 192, 192, 106, 213, 196, 196, 359, 148,
1601 192, 196, 378, 192, 196, 381, 213, 196, 120, 79,
1602 299, 192, 300, 389, 193, 196, 107, 108, 109, 79,
1603 308, 397, 171, 96, 97, 98, 99, 100, 101, 102,
1604 103, 104, 105, 322, 79, 280, 281, 282, 283, 284,
1605 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
1606 295, 296, 297, 298, 192, 79, 307, 197, 198, 208,
1607 85, 86, 307, 117, 315, 79, 287, 288, 289, 290,
1608 315, 220, 36, 37, 38, 363, 91, 92, 367, 283,
1609 284, 212, 231, 201, 202, 203, 291, 292, 376, 212,
1610 378, 285, 286, 381, 243, 384, 212, 191, 191, 212,
1611 210, 389, 251, 191, 191, 206, 192, 256, 359, 397,
1612 191, 207, 93, 208, 359, 404, 95, 191, 79, 194,
1613 212, 193, 78, 192, 79, 193, 211, 194, 191, 194,
1614 196, 192, 211, 191, 211, 213, 212, 194, 211, 194,
1615 192, 194, 12, 191, 12, 293, 260, 211, 294, 211,
1616 295, 298, 296, 120, 297, 127, 212, 239, 78, 316,
1617 138, 385, 84, 243, 372, 171, 322, 82, -1, 220,
1618 220, -1, -1, 322, -1, -1, -1, -1, -1, -1,
1619 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1620 -1, -1, -1, -1, 243, -1, -1, -1, -1, -1,
1621 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1622 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1623 -1, -1, 371, -1, -1, 374, -1, -1, -1, -1,
1624 -1, -1, -1, -1, -1, -1, 385, -1, -1, -1,
1625 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1626 -1, -1, -1, 402, -1, -1, -1, -1, -1, -1,
1627 -1, 410, -1, 412, 3, 4, 5, 6, 7, 8,
1628 9, 10, 11, -1, 13, 14, 15, 16, 17, 18,
1629 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1630 29, 30, 31, 32, 33, 34, 35, -1, 37, -1,
1631 39, -1, 41, 42, 43, 44, 45, 46, 47, 48,
1632 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1633 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1634 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
1635 79, 80, 81, 82, 83, 84, -1, -1, 87, 88,
1636 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1637 -1, -1, -1, -1, -1, -1, -1, 106, 107, 108,
1638 109, -1, 111, -1, -1, -1, -1, -1, -1, -1,
1639 -1, 120, -1, -1, -1, -1, -1, -1, -1, -1,
1640 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1641 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1642 -1, -1, -1, -1, -1, 154, -1, 156, -1, -1,
1643 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1644 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1645 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1646 -1, -1, 191, -1, -1, -1, -1, -1, 197, 198,
1647 199, 200, -1, -1, -1, -1, -1, -1, -1, -1,
1648 -1, -1, -1, 212, 213, 214, 3, 4, 5, 6,
1649 7, 8, 9, 10, 11, -1, 13, 14, 15, 16,
1650 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
1651 27, 28, 29, 30, 31, 32, 33, 34, 35, -1,
1652 37, -1, 39, -1, 41, 42, 43, 44, 45, 46,
1653 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1654 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1655 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1656 77, 78, 79, 80, 81, 82, 83, 84, -1, -1,
1657 87, 88, -1, -1, -1, -1, -1, -1, -1, -1,
1658 -1, -1, -1, -1, -1, -1, -1, -1, -1, 106,
1659 107, 108, 109, -1, 111, -1, -1, -1, -1, -1,
1660 -1, -1, -1, 120, -1, -1, -1, -1, -1, -1,
1661 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1662 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1663 -1, -1, -1, -1, -1, -1, -1, 154, -1, 156,
1664 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1665 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1666 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1667 -1, -1, -1, -1, 191, -1, -1, -1, -1, -1,
1668 197, 198, 199, 200, -1, -1, -1, -1, -1, -1,
1669 -1, -1, -1, -1, -1, 212, 213, 214, 3, 4,
1670 5, 6, 7, 8, 9, 10, 11, -1, 13, 14,
1671 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
1672 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1673 35, -1, 37, -1, 39, -1, 41, 42, 43, 44,
1674 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1675 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1676 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1677 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
1678 -1, -1, 87, 88, -1, -1, -1, -1, -1, -1,
1679 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1680 -1, 106, 107, 108, 109, -1, 111, -1, -1, -1,
1681 -1, -1, -1, -1, -1, 120, -1, -1, -1, -1,
1682 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1683 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1684 -1, -1, -1, -1, -1, -1, -1, -1, -1, 154,
1685 -1, 156, -1, -1, -1, -1, -1, -1, -1, -1,
1686 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1687 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1688 -1, -1, -1, -1, -1, -1, 191, -1, -1, -1,
1689 -1, -1, 197, 198, 199, 200, -1, -1, -1, -1,
1690 -1, -1, -1, -1, -1, -1, -1, 212, 213, 214,
1691 3, 4, 5, 6, 7, 8, 9, 10, 11, -1,
1692 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
1693 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
1694 33, 34, 35, -1, 37, -1, 39, -1, 41, 42,
1695 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1696 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1697 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
1698 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
1699 83, 84, -1, -1, 87, 88, -1, -1, -1, -1,
1700 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1701 -1, -1, -1, 106, 107, 108, 109, -1, 111, -1,
1702 -1, -1, -1, -1, -1, -1, -1, 120, -1, -1,
1703 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1704 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1705 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1706 -1, 154, -1, 156, -1, -1, -1, -1, -1, -1,
1707 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1708 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1709 -1, -1, -1, -1, -1, -1, -1, -1, 191, -1,
1710 -1, -1, -1, -1, 197, 198, 199, 200, -1, -1,
1711 -1, -1, -1, -1, -1, -1, -1, -1, -1, 212,
1712 213, 214, 3, 4, 5, 6, 7, 8, 9, 10,
1713 11, -1, 13, 14, 15, 16, 17, 18, 19, 20,
1714 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
1715 31, 32, 33, 34, 35, -1, 37, -1, 39, -1,
1716 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1717 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1718 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1719 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
1720 81, 82, 83, 84, -1, -1, 87, 88, -1, -1,
1721 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1722 -1, -1, -1, -1, -1, 106, 107, 108, 109, -1,
1723 111, -1, -1, -1, -1, -1, -1, -1, -1, 120,
1724 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1725 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1726 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1727 -1, -1, -1, 154, -1, 156, -1, -1, -1, -1,
1728 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1729 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1730 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1731 191, -1, -1, -1, -1, -1, 197, 198, 199, 200,
1732 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1733 -1, 212, 213, 3, 4, 5, 6, 7, 8, 9,
1734 10, 11, -1, 13, 14, 15, 16, 17, 18, 19,
1735 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
1736 30, 31, 32, 33, 34, 35, -1, 37, -1, 39,
1737 -1, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1738 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1739 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1740 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
1741 80, 81, 82, 83, 84, -1, -1, 87, 88, -1,
1742 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1743 -1, -1, -1, -1, -1, -1, 106, 107, 108, 109,
1744 -1, 111, -1, -1, -1, -1, -1, -1, -1, -1,
1745 120, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1746 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1747 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1748 -1, -1, -1, -1, 154, -1, 156, -1, -1, -1,
1749 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1750 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1751 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1752 -1, 191, -1, -1, -1, -1, -1, 197, 198, 199,
1753 200, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1754 -1, -1, 212, 213, 3, 4, 5, 6, 7, 8,
1755 9, 10, 11, -1, 13, 14, 15, 16, 17, 18,
1756 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1757 29, 30, 31, 32, 33, 34, 35, -1, 37, -1,
1758 39, -1, 41, 42, 43, 44, 45, 46, 47, 48,
1759 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1760 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1761 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
1762 79, 80, 81, 82, 83, 84, -1, -1, 87, 88,
1763 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1764 -1, -1, -1, -1, -1, -1, -1, 106, 107, 108,
1765 109, -1, 111, -1, -1, -1, -1, -1, -1, -1,
1766 -1, 120, -1, -1, -1, -1, -1, -1, -1, -1,
1767 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1768 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1769 -1, -1, -1, -1, -1, 154, -1, 156, -1, -1,
1770 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1771 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1772 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1773 -1, -1, 191, -1, -1, -1, -1, -1, 197, 198,
1774 199, 200, 3, 4, 5, 6, 7, 8, -1, -1,
1775 -1, -1, -1, 212, 213, -1, -1, -1, -1, 20,
1776 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
1777 31, 32, 33, 34, 35, -1, 37, -1, 39, -1,
1778 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1779 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1780 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1781 71, 72, 73, 74, 75, 76, 77, -1, 79, 80,
1782 81, 82, 83, 84, -1, -1, 87, 88, -1, -1,
1783 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1784 -1, -1, -1, -1, -1, 106, 107, 108, 109, -1,
1785 111, -1, -1, -1, -1, -1, -1, -1, -1, 120,
1786 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1787 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1788 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1789 -1, -1, -1, 154, -1, 156, -1, -1, -1, -1,
1790 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1791 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1792 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1793 191, -1, -1, -1, -1, -1, 197, 198, 199, 200,
1794 3, 4, 5, 6, 7, 8, -1, -1, -1, -1,
1795 -1, 212, -1, -1, -1, -1, -1, 20, 21, 22,
1796 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
1797 33, 34, 35, -1, 37, -1, 39, -1, 41, 42,
1798 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1799 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1800 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
1801 73, 74, 75, 76, 77, -1, 79, 80, 81, 82,
1802 83, 84, -1, -1, 87, 88, -1, -1, -1, -1,
1803 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1804 -1, -1, -1, 106, 107, 108, 109, -1, -1, -1,
1805 -1, -1, -1, -1, -1, -1, -1, 120, -1, -1,
1806 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1807 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1808 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1809 -1, 154, -1, 156, -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, -1, -1, -1, -1, -1, -1, 191, -1,
1813 -1, -1, -1, -1, 197, 198, 199, 200, 5, 6,
1814 7, 8, -1, -1, -1, -1, -1, -1, -1, 212,
1815 -1, -1, -1, 20, 21, 22, 23, 24, 25, 26,
1816 27, 28, 29, 30, 31, 32, 33, 34, -1, -1,
1817 -1, -1, -1, -1, -1, -1, -1, 44, 45, 46,
1818 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1819 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1820 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1821 77, -1, 79, -1, -1, -1, -1, -1, -1, -1,
1822 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1823 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1824 107, 108, 109, -1, -1, -1, -1, -1, -1, -1,
1825 -1, 5, 6, 7, 8, -1, -1, -1, -1, -1,
1826 -1, -1, -1, -1, -1, -1, 20, 21, 22, 23,
1827 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
1828 34, -1, -1, -1, -1, -1, -1, 154, -1, 156,
1829 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1830 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1831 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1832 74, 75, 76, 77, -1, 79, -1, -1, -1, -1,
1833 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1834 -1, -1, -1, -1, -1, -1, -1, 214, -1, -1,
1835 -1, -1, -1, 107, 108, 109, -1, -1, -1, -1,
1836 -1, -1, -1, -1, 5, 6, 7, 8, -1, -1,
1837 -1, -1, -1, -1, -1, -1, -1, -1, -1, 20,
1838 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
1839 31, 32, 33, 34, -1, -1, -1, -1, -1, -1,
1840 154, -1, 156, 44, 45, 46, 47, 48, 49, 50,
1841 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1842 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1843 71, 72, 73, 74, 75, 76, 77, -1, 79, 80,
1844 81, 82, 83, 84, -1, -1, 87, 88, -1, -1,
1845 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1846 214, -1, -1, -1, -1, -1, 107, 108, 109, -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, 154, -1, 156, -1, -1, -1, -1,
1852 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1853 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1854 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1855 191, -1, -1, -1, -1, -1, 197, 198, 199, 200,
1856 3, 4, 5, 6, 7, 8, -1, -1, -1, -1,
1857 -1, 212, -1, -1, -1, -1, -1, 20, 21, 22,
1858 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
1859 33, 34, 35, -1, 37, -1, 39, -1, 41, 42,
1860 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1861 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1862 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
1863 73, 74, 75, 76, 77, -1, 79, 80, 81, 82,
1864 83, 84, -1, -1, 87, 88, -1, -1, -1, -1,
1865 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1866 -1, -1, -1, 106, 107, 108, 109, -1, -1, -1,
1867 -1, -1, -1, -1, -1, -1, -1, 120, -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 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1871 -1, 154, -1, 156, -1, -1, -1, -1, -1, -1,
1872 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1873 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1874 -1, -1, -1, 5, 6, 7, 8, -1, 191, -1,
1875 -1, -1, -1, -1, 197, 198, 199, 200, 20, 21,
1876 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
1877 32, 33, 34, -1, -1, -1, -1, -1, -1, -1,
1878 -1, -1, 44, 45, 46, 47, 48, 49, 50, 51,
1879 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1880 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1881 72, 73, 74, 75, 76, 77, -1, 79, 80, 81,
1882 82, 83, 84, -1, -1, 87, 88, -1, -1, -1,
1883 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1884 -1, -1, -1, -1, -1, 107, 108, 109, -1, -1,
1885 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1886 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1887 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1888 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1889 -1, -1, 154, -1, 156, -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, -1, -1, -1, 5, 6, 7, 8, -1, 191,
1893 -1, -1, 194, -1, -1, 197, 198, 199, 200, 20,
1894 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
1895 31, 32, 33, 34, -1, -1, -1, -1, -1, -1,
1896 -1, -1, -1, 44, 45, 46, 47, 48, 49, 50,
1897 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1898 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1899 71, 72, 73, 74, 75, 76, 77, -1, 79, 80,
1900 81, 82, 83, 84, -1, -1, 87, 88, -1, -1,
1901 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1902 -1, -1, -1, -1, -1, -1, 107, 108, 109, -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, 154, -1, 156, -1, -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, 5, 6, 7, 8, -1,
1911 191, -1, -1, 194, -1, -1, 197, 198, 199, 200,
1912 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
1913 30, 31, 32, 33, 34, -1, -1, -1, -1, -1,
1914 -1, -1, -1, -1, 44, 45, 46, 47, 48, 49,
1915 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1916 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1917 70, 71, 72, 73, 74, 75, 76, 77, -1, 79,
1918 80, 81, 82, 83, 84, -1, -1, 87, 88, -1,
1919 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1920 -1, -1, -1, -1, -1, -1, -1, 107, 108, 109,
1921 -1, -1, -1, -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, 154, -1, 156, -1, -1, -1,
1926 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1927 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1928 -1, -1, -1, -1, -1, -1, 5, 6, 7, 8,
1929 -1, 191, -1, -1, 194, -1, -1, 197, 198, 199,
1930 200, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1931 29, 30, 31, 32, 33, 34, -1, -1, -1, -1,
1932 -1, -1, -1, -1, -1, 44, 45, 46, 47, 48,
1933 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1934 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1935 69, 70, 71, 72, 73, 74, 75, 76, 77, -1,
1936 79, 80, 81, 82, 83, 84, -1, -1, 87, 88,
1937 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1938 -1, -1, -1, -1, -1, -1, -1, -1, 107, 108,
1939 109, -1, -1, -1, -1, -1, -1, -1, -1, -1,
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, 154, -1, 156, -1, -1,
1944 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1945 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1946 -1, -1, -1, -1, -1, -1, -1, 5, 6, 7,
1947 8, -1, 191, -1, -1, -1, -1, -1, 197, 198,
1948 199, 200, 20, 21, 22, 23, 24, 25, 26, 27,
1949 28, 29, 30, 31, 32, 33, 34, -1, -1, -1,
1950 -1, -1, -1, -1, -1, -1, 44, 45, 46, 47,
1951 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1952 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1953 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
1954 -1, 79, 80, 81, 82, 83, 84, -1, -1, 87,
1955 88, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1956 -1, -1, -1, -1, -1, -1, -1, -1, -1, 107,
1957 108, 109, -1, -1, -1, -1, -1, -1, -1, -1,
1958 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1959 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1960 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1961 -1, -1, -1, -1, -1, -1, 154, -1, 156, -1,
1962 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1963 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1964 -1, -1, -1, 0, -1, -1, 3, 4, 5, 6,
1965 7, 8, -1, 191, -1, -1, -1, -1, -1, 197,
1966 198, 199, 200, 20, 21, 22, 23, 24, 25, 26,
1967 27, 28, 29, 30, 31, 32, 33, 34, 35, -1,
1968 37, -1, 39, -1, 41, 42, 43, 44, 45, 46,
1969 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1970 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1971 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1972 77, -1, 79, -1, -1, -1, -1, -1, -1, -1,
1973 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1974 -1, -1, -1, -1, -1, -1, -1, -1, -1, 106,
1975 107, 108, 109, -1, 111, -1, -1, -1, -1, -1,
1976 -1, -1, -1, 120, 3, 4, 5, 6, 7, 8,
1977 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1978 -1, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1979 29, 30, 31, 32, 33, 34, 35, 154, 37, 156,
1980 39, -1, 41, 42, 43, 44, 45, 46, 47, 48,
1981 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1982 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1983 69, 70, 71, 72, 73, 74, 75, 76, 77, -1,
1984 79, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1985 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1986 -1, -1, -1, -1, -1, -1, -1, 106, 107, 108,
1987 109, -1, 111, -1, -1, -1, -1, -1, -1, -1,
1988 -1, 120, 5, 6, 7, 8, -1, -1, -1, -1,
1989 -1, -1, -1, -1, -1, -1, -1, 20, 21, 22,
1990 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
1991 33, 34, -1, -1, -1, 154, -1, 156, -1, -1,
1992 -1, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1993 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1994 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
1995 73, 74, 75, 76, 77, -1, 79, -1, -1, -1,
1996 -1, 84, -1, -1, -1, -1, -1, -1, -1, -1,
1997 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1998 -1, -1, -1, -1, 107, 108, 109, -1, -1, -1,
1999 -1, -1, -1, -1, -1, 5, 6, 7, 8, -1,
2000 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2001 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
2002 30, 31, 32, 33, 34, -1, -1, -1, -1, -1,
2003 -1, 154, -1, 156, 44, 45, 46, 47, 48, 49,
2004 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
2005 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
2006 70, 71, 72, 73, 74, 75, 76, 77, -1, 79,
2007 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2008 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2009 -1, -1, -1, -1, -1, -1, -1, 107, 108, 109,
2010 -1, -1, -1, -1, -1, -1, -1, -1, 5, 6,
2011 7, 8, -1, -1, -1, -1, -1, -1, -1, -1,
2012 -1, -1, -1, 20, 21, 22, 23, 24, 25, 26,
2013 27, 28, 29, 30, 31, 32, 33, 34, -1, -1,
2014 -1, -1, -1, -1, 154, -1, 156, 44, 45, 46,
2015 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
2016 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
2017 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
2018 77, -1, 79, -1, -1, -1, -1, -1, -1, -1,
2019 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2020 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2021 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2022 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2023 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2024 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2025 -1, -1, -1, -1, -1, -1, -1, 154, -1, 156
2028 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
2029 symbol of state STATE-NUM. */
2030 static const yytype_uint16 yystos
[] =
2032 0, 112, 216, 218, 81, 0, 219, 117, 113, 217,
2033 220, 79, 3, 4, 5, 6, 7, 8, 20, 21,
2034 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
2035 32, 33, 34, 35, 37, 39, 41, 42, 43, 44,
2036 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
2037 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
2038 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
2039 75, 76, 77, 79, 106, 107, 108, 109, 111, 120,
2040 154, 156, 221, 251, 252, 253, 254, 255, 260, 261,
2041 262, 263, 264, 267, 269, 270, 271, 272, 273, 274,
2042 275, 276, 302, 303, 116, 36, 37, 40, 79, 213,
2043 79, 106, 269, 275, 191, 302, 212, 213, 289, 192,
2044 196, 4, 36, 37, 38, 257, 258, 268, 196, 212,
2045 79, 36, 40, 269, 271, 193, 272, 79, 213, 271,
2046 277, 278, 272, 79, 265, 266, 9, 10, 11, 13,
2047 14, 15, 16, 17, 18, 19, 78, 79, 80, 81,
2048 82, 83, 84, 87, 88, 191, 197, 198, 199, 200,
2049 212, 213, 214, 222, 223, 224, 226, 227, 228, 229,
2050 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
2051 240, 241, 242, 243, 244, 245, 246, 247, 249, 251,
2052 252, 271, 282, 283, 284, 285, 286, 287, 290, 291,
2053 292, 293, 295, 296, 297, 301, 257, 256, 259, 271,
2054 258, 79, 191, 193, 211, 194, 233, 246, 250, 271,
2055 117, 277, 79, 279, 280, 214, 278, 212, 192, 196,
2056 212, 212, 283, 191, 191, 212, 212, 249, 191, 249,
2057 210, 191, 233, 233, 249, 214, 290, 87, 88, 193,
2058 195, 192, 192, 196, 77, 247, 191, 96, 97, 98,
2059 99, 100, 101, 102, 103, 104, 105, 211, 248, 233,
2060 201, 202, 203, 197, 198, 85, 86, 89, 90, 204,
2061 205, 91, 92, 206, 207, 208, 93, 95, 94, 209,
2062 196, 212, 214, 283, 79, 256, 259, 193, 211, 194,
2063 250, 247, 281, 194, 214, 193, 196, 212, 266, 78,
2064 282, 291, 298, 249, 212, 249, 210, 249, 262, 294,
2065 192, 214, 225, 249, 79, 228, 247, 247, 233, 233,
2066 233, 235, 235, 236, 236, 237, 237, 237, 237, 238,
2067 238, 239, 240, 241, 242, 243, 244, 249, 247, 193,
2068 194, 250, 281, 211, 194, 250, 280, 191, 294, 299,
2069 300, 192, 192, 79, 192, 194, 210, 250, 211, 194,
2070 281, 211, 194, 249, 212, 192, 284, 285, 287, 211,
2071 14, 286, 288, 289, 247, 194, 281, 211, 281, 192,
2072 249, 288, 12, 281, 191, 281, 212, 284, 285, 249,
2076 #define yyerrok (yyerrstatus = 0)
2077 #define yyclearin (yychar = YYEMPTY)
2078 #define YYEMPTY (-2)
2081 #define YYACCEPT goto yyacceptlab
2082 #define YYABORT goto yyabortlab
2083 #define YYERROR goto yyerrorlab
2086 /* Like YYERROR except do call yyerror. This remains here temporarily
2087 to ease the transition to the new meaning of YYERROR, for GCC.
2088 Once GCC version 2 has supplanted version 1, this can go. */
2090 #define YYFAIL goto yyerrlab
2092 #define YYRECOVERING() (!!yyerrstatus)
2094 #define YYBACKUP(Token, Value) \
2096 if (yychar == YYEMPTY && yylen == 1) \
2100 yytoken = YYTRANSLATE (yychar); \
2106 yyerror (&yylloc, state, YY_("syntax error: cannot back up")); \
2113 #define YYERRCODE 256
2116 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
2117 If N is 0, then set CURRENT to the empty location which ends
2118 the previous symbol: RHS[0] (always defined). */
2120 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
2121 #ifndef YYLLOC_DEFAULT
2122 # define YYLLOC_DEFAULT(Current, Rhs, N) \
2126 (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
2127 (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
2128 (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
2129 (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
2133 (Current).first_line = (Current).last_line = \
2134 YYRHSLOC (Rhs, 0).last_line; \
2135 (Current).first_column = (Current).last_column = \
2136 YYRHSLOC (Rhs, 0).last_column; \
2142 /* YY_LOCATION_PRINT -- Print the location on the stream.
2143 This macro was not mandated originally: define only if we know
2144 we won't break user code: when these are the locations we know. */
2146 #ifndef YY_LOCATION_PRINT
2147 # if YYLTYPE_IS_TRIVIAL
2148 # define YY_LOCATION_PRINT(File, Loc) \
2149 fprintf (File, "%d.%d-%d.%d", \
2150 (Loc).first_line, (Loc).first_column, \
2151 (Loc).last_line, (Loc).last_column)
2153 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2158 /* YYLEX -- calling `yylex' with the right arguments. */
2161 # define YYLEX yylex (&yylval, &yylloc, YYLEX_PARAM)
2163 # define YYLEX yylex (&yylval, &yylloc, scanner)
2166 /* Enable debugging if requested. */
2170 # include <stdio.h> /* INFRINGES ON USER NAME SPACE */
2171 # define YYFPRINTF fprintf
2174 # define YYDPRINTF(Args) \
2180 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
2184 YYFPRINTF (stderr, "%s ", Title); \
2185 yy_symbol_print (stderr, \
2186 Type, Value, Location, state); \
2187 YYFPRINTF (stderr, "\n"); \
2192 /*--------------------------------.
2193 | Print this symbol on YYOUTPUT. |
2194 `--------------------------------*/
2197 #if (defined __STDC__ || defined __C99__FUNC__ \
2198 || defined __cplusplus || defined _MSC_VER)
2200 yy_symbol_value_print (FILE *yyoutput
, int yytype
, YYSTYPE
const * const yyvaluep
, YYLTYPE
const * const yylocationp
, struct _mesa_glsl_parse_state
*state
)
2203 yy_symbol_value_print (yyoutput
, yytype
, yyvaluep
, yylocationp
, state
)
2206 YYSTYPE
const * const yyvaluep
;
2207 YYLTYPE
const * const yylocationp
;
2208 struct _mesa_glsl_parse_state
*state
;
2213 YYUSE (yylocationp
);
2216 if (yytype
< YYNTOKENS
)
2217 YYPRINT (yyoutput
, yytoknum
[yytype
], *yyvaluep
);
2229 /*--------------------------------.
2230 | Print this symbol on YYOUTPUT. |
2231 `--------------------------------*/
2233 #if (defined __STDC__ || defined __C99__FUNC__ \
2234 || defined __cplusplus || defined _MSC_VER)
2236 yy_symbol_print (FILE *yyoutput
, int yytype
, YYSTYPE
const * const yyvaluep
, YYLTYPE
const * const yylocationp
, struct _mesa_glsl_parse_state
*state
)
2239 yy_symbol_print (yyoutput
, yytype
, yyvaluep
, yylocationp
, state
)
2242 YYSTYPE
const * const yyvaluep
;
2243 YYLTYPE
const * const yylocationp
;
2244 struct _mesa_glsl_parse_state
*state
;
2247 if (yytype
< YYNTOKENS
)
2248 YYFPRINTF (yyoutput
, "token %s (", yytname
[yytype
]);
2250 YYFPRINTF (yyoutput
, "nterm %s (", yytname
[yytype
]);
2252 YY_LOCATION_PRINT (yyoutput
, *yylocationp
);
2253 YYFPRINTF (yyoutput
, ": ");
2254 yy_symbol_value_print (yyoutput
, yytype
, yyvaluep
, yylocationp
, state
);
2255 YYFPRINTF (yyoutput
, ")");
2258 /*------------------------------------------------------------------.
2259 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
2261 `------------------------------------------------------------------*/
2263 #if (defined __STDC__ || defined __C99__FUNC__ \
2264 || defined __cplusplus || defined _MSC_VER)
2266 yy_stack_print (yytype_int16
*yybottom
, yytype_int16
*yytop
)
2269 yy_stack_print (yybottom
, yytop
)
2270 yytype_int16
*yybottom
;
2271 yytype_int16
*yytop
;
2274 YYFPRINTF (stderr
, "Stack now");
2275 for (; yybottom
<= yytop
; yybottom
++)
2277 int yybot
= *yybottom
;
2278 YYFPRINTF (stderr
, " %d", yybot
);
2280 YYFPRINTF (stderr
, "\n");
2283 # define YY_STACK_PRINT(Bottom, Top) \
2286 yy_stack_print ((Bottom), (Top)); \
2290 /*------------------------------------------------.
2291 | Report that the YYRULE is going to be reduced. |
2292 `------------------------------------------------*/
2294 #if (defined __STDC__ || defined __C99__FUNC__ \
2295 || defined __cplusplus || defined _MSC_VER)
2297 yy_reduce_print (YYSTYPE
*yyvsp
, YYLTYPE
*yylsp
, int yyrule
, struct _mesa_glsl_parse_state
*state
)
2300 yy_reduce_print (yyvsp
, yylsp
, yyrule
, state
)
2304 struct _mesa_glsl_parse_state
*state
;
2307 int yynrhs
= yyr2
[yyrule
];
2309 unsigned long int yylno
= yyrline
[yyrule
];
2310 YYFPRINTF (stderr
, "Reducing stack by rule %d (line %lu):\n",
2312 /* The symbols being reduced. */
2313 for (yyi
= 0; yyi
< yynrhs
; yyi
++)
2315 YYFPRINTF (stderr
, " $%d = ", yyi
+ 1);
2316 yy_symbol_print (stderr
, yyrhs
[yyprhs
[yyrule
] + yyi
],
2317 &(yyvsp
[(yyi
+ 1) - (yynrhs
)])
2318 , &(yylsp
[(yyi
+ 1) - (yynrhs
)]) , state
);
2319 YYFPRINTF (stderr
, "\n");
2323 # define YY_REDUCE_PRINT(Rule) \
2326 yy_reduce_print (yyvsp, yylsp, Rule, state); \
2329 /* Nonzero means print parse trace. It is left uninitialized so that
2330 multiple parsers can coexist. */
2332 #else /* !YYDEBUG */
2333 # define YYDPRINTF(Args)
2334 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
2335 # define YY_STACK_PRINT(Bottom, Top)
2336 # define YY_REDUCE_PRINT(Rule)
2337 #endif /* !YYDEBUG */
2340 /* YYINITDEPTH -- initial size of the parser's stacks. */
2342 # define YYINITDEPTH 200
2345 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
2346 if the built-in stack extension method is used).
2348 Do not make this value too large; the results are undefined if
2349 YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
2350 evaluated with infinite-precision integer arithmetic. */
2353 # define YYMAXDEPTH 10000
2361 # if defined __GLIBC__ && defined _STRING_H
2362 # define yystrlen strlen
2364 /* Return the length of YYSTR. */
2365 #if (defined __STDC__ || defined __C99__FUNC__ \
2366 || defined __cplusplus || defined _MSC_VER)
2368 yystrlen (const char *yystr
)
2376 for (yylen
= 0; yystr
[yylen
]; yylen
++)
2384 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
2385 # define yystpcpy stpcpy
2387 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
2389 #if (defined __STDC__ || defined __C99__FUNC__ \
2390 || defined __cplusplus || defined _MSC_VER)
2392 yystpcpy (char *yydest
, const char *yysrc
)
2395 yystpcpy (yydest
, yysrc
)
2401 const char *yys
= yysrc
;
2403 while ((*yyd
++ = *yys
++) != '\0')
2412 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
2413 quotes and backslashes, so that it's suitable for yyerror. The
2414 heuristic is that double-quoting is unnecessary unless the string
2415 contains an apostrophe, a comma, or backslash (other than
2416 backslash-backslash). YYSTR is taken from yytname. If YYRES is
2417 null, do not copy; instead, return the length of what the result
2420 yytnamerr (char *yyres
, const char *yystr
)
2425 char const *yyp
= yystr
;
2432 goto do_not_strip_quotes
;
2436 goto do_not_strip_quotes
;
2449 do_not_strip_quotes
: ;
2453 return yystrlen (yystr
);
2455 return yystpcpy (yyres
, yystr
) - yyres
;
2459 /* Copy into YYRESULT an error message about the unexpected token
2460 YYCHAR while in state YYSTATE. Return the number of bytes copied,
2461 including the terminating null byte. If YYRESULT is null, do not
2462 copy anything; just return the number of bytes that would be
2463 copied. As a special case, return 0 if an ordinary "syntax error"
2464 message will do. Return YYSIZE_MAXIMUM if overflow occurs during
2465 size calculation. */
2467 yysyntax_error (char *yyresult
, int yystate
, int yychar
)
2469 int yyn
= yypact
[yystate
];
2471 if (! (YYPACT_NINF
< yyn
&& yyn
<= YYLAST
))
2475 int yytype
= YYTRANSLATE (yychar
);
2476 YYSIZE_T yysize0
= yytnamerr (0, yytname
[yytype
]);
2477 YYSIZE_T yysize
= yysize0
;
2479 int yysize_overflow
= 0;
2480 enum { YYERROR_VERBOSE_ARGS_MAXIMUM
= 5 };
2481 char const *yyarg
[YYERROR_VERBOSE_ARGS_MAXIMUM
];
2485 /* This is so xgettext sees the translatable formats that are
2486 constructed on the fly. */
2487 YY_("syntax error, unexpected %s");
2488 YY_("syntax error, unexpected %s, expecting %s");
2489 YY_("syntax error, unexpected %s, expecting %s or %s");
2490 YY_("syntax error, unexpected %s, expecting %s or %s or %s");
2491 YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
2495 static char const yyunexpected
[] = "syntax error, unexpected %s";
2496 static char const yyexpecting
[] = ", expecting %s";
2497 static char const yyor
[] = " or %s";
2498 char yyformat
[sizeof yyunexpected
2499 + sizeof yyexpecting
- 1
2500 + ((YYERROR_VERBOSE_ARGS_MAXIMUM
- 2)
2501 * (sizeof yyor
- 1))];
2502 char const *yyprefix
= yyexpecting
;
2504 /* Start YYX at -YYN if negative to avoid negative indexes in
2506 int yyxbegin
= yyn
< 0 ? -yyn
: 0;
2508 /* Stay within bounds of both yycheck and yytname. */
2509 int yychecklim
= YYLAST
- yyn
+ 1;
2510 int yyxend
= yychecklim
< YYNTOKENS
? yychecklim
: YYNTOKENS
;
2513 yyarg
[0] = yytname
[yytype
];
2514 yyfmt
= yystpcpy (yyformat
, yyunexpected
);
2516 for (yyx
= yyxbegin
; yyx
< yyxend
; ++yyx
)
2517 if (yycheck
[yyx
+ yyn
] == yyx
&& yyx
!= YYTERROR
)
2519 if (yycount
== YYERROR_VERBOSE_ARGS_MAXIMUM
)
2523 yyformat
[sizeof yyunexpected
- 1] = '\0';
2526 yyarg
[yycount
++] = yytname
[yyx
];
2527 yysize1
= yysize
+ yytnamerr (0, yytname
[yyx
]);
2528 yysize_overflow
|= (yysize1
< yysize
);
2530 yyfmt
= yystpcpy (yyfmt
, yyprefix
);
2534 yyf
= YY_(yyformat
);
2535 yysize1
= yysize
+ yystrlen (yyf
);
2536 yysize_overflow
|= (yysize1
< yysize
);
2539 if (yysize_overflow
)
2540 return YYSIZE_MAXIMUM
;
2544 /* Avoid sprintf, as that infringes on the user's name space.
2545 Don't have undefined behavior even if the translation
2546 produced a string with the wrong number of "%s"s. */
2547 char *yyp
= yyresult
;
2549 while ((*yyp
= *yyf
) != '\0')
2551 if (*yyp
== '%' && yyf
[1] == 's' && yyi
< yycount
)
2553 yyp
+= yytnamerr (yyp
, yyarg
[yyi
++]);
2566 #endif /* YYERROR_VERBOSE */
2569 /*-----------------------------------------------.
2570 | Release the memory associated to this symbol. |
2571 `-----------------------------------------------*/
2574 #if (defined __STDC__ || defined __C99__FUNC__ \
2575 || defined __cplusplus || defined _MSC_VER)
2577 yydestruct (const char *yymsg
, int yytype
, YYSTYPE
*yyvaluep
, YYLTYPE
*yylocationp
, struct _mesa_glsl_parse_state
*state
)
2580 yydestruct (yymsg
, yytype
, yyvaluep
, yylocationp
, state
)
2584 YYLTYPE
*yylocationp
;
2585 struct _mesa_glsl_parse_state
*state
;
2589 YYUSE (yylocationp
);
2594 YY_SYMBOL_PRINT (yymsg
, yytype
, yyvaluep
, yylocationp
);
2604 /* Prevent warnings from -Wmissing-prototypes. */
2605 #ifdef YYPARSE_PARAM
2606 #if defined __STDC__ || defined __cplusplus
2607 int yyparse (void *YYPARSE_PARAM
);
2611 #else /* ! YYPARSE_PARAM */
2612 #if defined __STDC__ || defined __cplusplus
2613 int yyparse (struct _mesa_glsl_parse_state
*state
);
2617 #endif /* ! YYPARSE_PARAM */
2623 /*-------------------------.
2624 | yyparse or yypush_parse. |
2625 `-------------------------*/
2627 #ifdef YYPARSE_PARAM
2628 #if (defined __STDC__ || defined __C99__FUNC__ \
2629 || defined __cplusplus || defined _MSC_VER)
2631 yyparse (void *YYPARSE_PARAM
)
2634 yyparse (YYPARSE_PARAM
)
2635 void *YYPARSE_PARAM
;
2637 #else /* ! YYPARSE_PARAM */
2638 #if (defined __STDC__ || defined __C99__FUNC__ \
2639 || defined __cplusplus || defined _MSC_VER)
2641 yyparse (struct _mesa_glsl_parse_state
*state
)
2645 struct _mesa_glsl_parse_state
*state
;
2649 /* The lookahead symbol. */
2652 /* The semantic value of the lookahead symbol. */
2655 /* Location data for the lookahead symbol. */
2658 /* Number of syntax errors so far. */
2662 /* Number of tokens to shift before error messages enabled. */
2665 /* The stacks and their tools:
2666 `yyss': related to states.
2667 `yyvs': related to semantic values.
2668 `yyls': related to locations.
2670 Refer to the stacks thru separate pointers, to allow yyoverflow
2671 to reallocate them elsewhere. */
2673 /* The state stack. */
2674 yytype_int16 yyssa
[YYINITDEPTH
];
2676 yytype_int16
*yyssp
;
2678 /* The semantic value stack. */
2679 YYSTYPE yyvsa
[YYINITDEPTH
];
2683 /* The location stack. */
2684 YYLTYPE yylsa
[YYINITDEPTH
];
2688 /* The locations where the error started and ended. */
2689 YYLTYPE yyerror_range
[2];
2691 YYSIZE_T yystacksize
;
2695 /* Lookahead token as an internal (translated) token number. */
2697 /* The variables used to return semantic value and location from the
2703 /* Buffer for error messages, and its allocated size. */
2705 char *yymsg
= yymsgbuf
;
2706 YYSIZE_T yymsg_alloc
= sizeof yymsgbuf
;
2709 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N), yylsp -= (N))
2711 /* The number of symbols on the RHS of the reduced rule.
2712 Keep to zero when no symbol should be popped. */
2719 yystacksize
= YYINITDEPTH
;
2721 YYDPRINTF ((stderr
, "Starting parse\n"));
2726 yychar
= YYEMPTY
; /* Cause a token to be read. */
2728 /* Initialize stack pointers.
2729 Waste one element of value and location stack
2730 so that they stay on the same level as the state stack.
2731 The wasted elements are never initialized. */
2736 #if YYLTYPE_IS_TRIVIAL
2737 /* Initialize the default location before parsing starts. */
2738 yylloc
.first_line
= yylloc
.last_line
= 1;
2739 yylloc
.first_column
= yylloc
.last_column
= 1;
2742 /* User initialization code. */
2744 /* Line 1242 of yacc.c */
2745 #line 41 "glsl_parser.ypp"
2747 yylloc
.first_line
= 1;
2748 yylloc
.first_column
= 1;
2749 yylloc
.last_line
= 1;
2750 yylloc
.last_column
= 1;
2754 /* Line 1242 of yacc.c */
2755 #line 2756 "glsl_parser.cpp"
2760 /*------------------------------------------------------------.
2761 | yynewstate -- Push a new state, which is found in yystate. |
2762 `------------------------------------------------------------*/
2764 /* In all cases, when you get here, the value and location stacks
2765 have just been pushed. So pushing a state here evens the stacks. */
2771 if (yyss
+ yystacksize
- 1 <= yyssp
)
2773 /* Get the current used size of the three stacks, in elements. */
2774 YYSIZE_T yysize
= yyssp
- yyss
+ 1;
2778 /* Give user a chance to reallocate the stack. Use copies of
2779 these so that the &'s don't force the real ones into
2781 YYSTYPE
*yyvs1
= yyvs
;
2782 yytype_int16
*yyss1
= yyss
;
2783 YYLTYPE
*yyls1
= yyls
;
2785 /* Each stack pointer address is followed by the size of the
2786 data in use in that stack, in bytes. This used to be a
2787 conditional around just the two extra args, but that might
2788 be undefined if yyoverflow is a macro. */
2789 yyoverflow (YY_("memory exhausted"),
2790 &yyss1
, yysize
* sizeof (*yyssp
),
2791 &yyvs1
, yysize
* sizeof (*yyvsp
),
2792 &yyls1
, yysize
* sizeof (*yylsp
),
2799 #else /* no yyoverflow */
2800 # ifndef YYSTACK_RELOCATE
2801 goto yyexhaustedlab
;
2803 /* Extend the stack our own way. */
2804 if (YYMAXDEPTH
<= yystacksize
)
2805 goto yyexhaustedlab
;
2807 if (YYMAXDEPTH
< yystacksize
)
2808 yystacksize
= YYMAXDEPTH
;
2811 yytype_int16
*yyss1
= yyss
;
2812 union yyalloc
*yyptr
=
2813 (union yyalloc
*) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize
));
2815 goto yyexhaustedlab
;
2816 YYSTACK_RELOCATE (yyss_alloc
, yyss
);
2817 YYSTACK_RELOCATE (yyvs_alloc
, yyvs
);
2818 YYSTACK_RELOCATE (yyls_alloc
, yyls
);
2819 # undef YYSTACK_RELOCATE
2821 YYSTACK_FREE (yyss1
);
2824 #endif /* no yyoverflow */
2826 yyssp
= yyss
+ yysize
- 1;
2827 yyvsp
= yyvs
+ yysize
- 1;
2828 yylsp
= yyls
+ yysize
- 1;
2830 YYDPRINTF ((stderr
, "Stack size increased to %lu\n",
2831 (unsigned long int) yystacksize
));
2833 if (yyss
+ yystacksize
- 1 <= yyssp
)
2837 YYDPRINTF ((stderr
, "Entering state %d\n", yystate
));
2839 if (yystate
== YYFINAL
)
2849 /* Do appropriate processing given the current state. Read a
2850 lookahead token if we need one and don't already have one. */
2852 /* First try to decide what to do without reference to lookahead token. */
2853 yyn
= yypact
[yystate
];
2854 if (yyn
== YYPACT_NINF
)
2857 /* Not known => get a lookahead token if don't already have one. */
2859 /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
2860 if (yychar
== YYEMPTY
)
2862 YYDPRINTF ((stderr
, "Reading a token: "));
2866 if (yychar
<= YYEOF
)
2868 yychar
= yytoken
= YYEOF
;
2869 YYDPRINTF ((stderr
, "Now at end of input.\n"));
2873 yytoken
= YYTRANSLATE (yychar
);
2874 YY_SYMBOL_PRINT ("Next token is", yytoken
, &yylval
, &yylloc
);
2877 /* If the proper action on seeing token YYTOKEN is to reduce or to
2878 detect an error, take that action. */
2880 if (yyn
< 0 || YYLAST
< yyn
|| yycheck
[yyn
] != yytoken
)
2885 if (yyn
== 0 || yyn
== YYTABLE_NINF
)
2891 /* Count tokens shifted since error; after three, turn off error
2896 /* Shift the lookahead token. */
2897 YY_SYMBOL_PRINT ("Shifting", yytoken
, &yylval
, &yylloc
);
2899 /* Discard the shifted token. */
2908 /*-----------------------------------------------------------.
2909 | yydefault -- do the default action for the current state. |
2910 `-----------------------------------------------------------*/
2912 yyn
= yydefact
[yystate
];
2918 /*-----------------------------.
2919 | yyreduce -- Do a reduction. |
2920 `-----------------------------*/
2922 /* yyn is the number of a rule to reduce with. */
2925 /* If YYLEN is nonzero, implement the default value of the action:
2928 Otherwise, the following line sets YYVAL to garbage.
2929 This behavior is undocumented and Bison
2930 users should not rely upon it. Assigning to YYVAL
2931 unconditionally makes the parser a bit smaller, and it avoids a
2932 GCC warning that YYVAL may be used uninitialized. */
2933 yyval
= yyvsp
[1-yylen
];
2935 /* Default location. */
2936 YYLLOC_DEFAULT (yyloc
, (yylsp
- yylen
), yylen
);
2937 YY_REDUCE_PRINT (yyn
);
2942 /* Line 1455 of yacc.c */
2943 #line 209 "glsl_parser.ypp"
2945 _mesa_glsl_initialize_types(state
);
2951 /* Line 1455 of yacc.c */
2952 #line 217 "glsl_parser.ypp"
2954 state
->language_version
= 110;
2960 /* Line 1455 of yacc.c */
2961 #line 221 "glsl_parser.ypp"
2963 switch ((yyvsp
[(2) - (3)].n
)) {
2967 /* FINISHME: Check against implementation support versions. */
2968 state
->language_version
= (yyvsp
[(2) - (3)].n
);
2971 _mesa_glsl_error(& (yylsp
[(2) - (3)]), state
, "Shading language version"
2972 "%u is not supported\n", (yyvsp
[(2) - (3)].n
));
2980 /* Line 1455 of yacc.c */
2981 #line 244 "glsl_parser.ypp"
2983 if (!_mesa_glsl_process_extension((yyvsp
[(2) - (5)].identifier
), & (yylsp
[(2) - (5)]), (yyvsp
[(4) - (5)].identifier
), & (yylsp
[(4) - (5)]), state
)) {
2991 /* Line 1455 of yacc.c */
2992 #line 253 "glsl_parser.ypp"
2994 /* FINISHME: The NULL test is only required because 'precision'
2995 * FINISHME: statements are not yet supported.
2997 if ((yyvsp
[(1) - (1)].node
) != NULL
)
2998 state
->translation_unit
.push_tail(& (yyvsp
[(1) - (1)].node
)->link
);
3004 /* Line 1455 of yacc.c */
3005 #line 261 "glsl_parser.ypp"
3007 /* FINISHME: The NULL test is only required because 'precision'
3008 * FINISHME: statements are not yet supported.
3010 if ((yyvsp
[(2) - (2)].node
) != NULL
)
3011 state
->translation_unit
.push_tail(& (yyvsp
[(2) - (2)].node
)->link
);
3017 /* Line 1455 of yacc.c */
3018 #line 276 "glsl_parser.ypp"
3021 (yyval
.expression
) = new(ctx
) ast_expression(ast_identifier
, NULL
, NULL
, NULL
);
3022 (yyval
.expression
)->set_location(yylloc
);
3023 (yyval
.expression
)->primary_expression
.identifier
= (yyvsp
[(1) - (1)].identifier
);
3029 /* Line 1455 of yacc.c */
3030 #line 283 "glsl_parser.ypp"
3033 (yyval
.expression
) = new(ctx
) ast_expression(ast_int_constant
, NULL
, NULL
, NULL
);
3034 (yyval
.expression
)->set_location(yylloc
);
3035 (yyval
.expression
)->primary_expression
.int_constant
= (yyvsp
[(1) - (1)].n
);
3041 /* Line 1455 of yacc.c */
3042 #line 290 "glsl_parser.ypp"
3045 (yyval
.expression
) = new(ctx
) ast_expression(ast_uint_constant
, NULL
, NULL
, NULL
);
3046 (yyval
.expression
)->set_location(yylloc
);
3047 (yyval
.expression
)->primary_expression
.uint_constant
= (yyvsp
[(1) - (1)].n
);
3053 /* Line 1455 of yacc.c */
3054 #line 297 "glsl_parser.ypp"
3057 (yyval
.expression
) = new(ctx
) ast_expression(ast_float_constant
, NULL
, NULL
, NULL
);
3058 (yyval
.expression
)->set_location(yylloc
);
3059 (yyval
.expression
)->primary_expression
.float_constant
= (yyvsp
[(1) - (1)].real
);
3065 /* Line 1455 of yacc.c */
3066 #line 304 "glsl_parser.ypp"
3069 (yyval
.expression
) = new(ctx
) ast_expression(ast_bool_constant
, NULL
, NULL
, NULL
);
3070 (yyval
.expression
)->set_location(yylloc
);
3071 (yyval
.expression
)->primary_expression
.bool_constant
= (yyvsp
[(1) - (1)].n
);
3077 /* Line 1455 of yacc.c */
3078 #line 311 "glsl_parser.ypp"
3080 (yyval
.expression
) = (yyvsp
[(2) - (3)].expression
);
3086 /* Line 1455 of yacc.c */
3087 #line 319 "glsl_parser.ypp"
3090 (yyval
.expression
) = new(ctx
) ast_expression(ast_array_index
, (yyvsp
[(1) - (4)].expression
), (yyvsp
[(3) - (4)].expression
), NULL
);
3091 (yyval
.expression
)->set_location(yylloc
);
3097 /* Line 1455 of yacc.c */
3098 #line 325 "glsl_parser.ypp"
3100 (yyval
.expression
) = (yyvsp
[(1) - (1)].expression
);
3106 /* Line 1455 of yacc.c */
3107 #line 329 "glsl_parser.ypp"
3110 (yyval
.expression
) = new(ctx
) ast_expression(ast_field_selection
, (yyvsp
[(1) - (3)].expression
), NULL
, NULL
);
3111 (yyval
.expression
)->set_location(yylloc
);
3112 (yyval
.expression
)->primary_expression
.identifier
= (yyvsp
[(3) - (3)].identifier
);
3118 /* Line 1455 of yacc.c */
3119 #line 336 "glsl_parser.ypp"
3122 (yyval
.expression
) = new(ctx
) ast_expression(ast_post_inc
, (yyvsp
[(1) - (2)].expression
), NULL
, NULL
);
3123 (yyval
.expression
)->set_location(yylloc
);
3129 /* Line 1455 of yacc.c */
3130 #line 342 "glsl_parser.ypp"
3133 (yyval
.expression
) = new(ctx
) ast_expression(ast_post_dec
, (yyvsp
[(1) - (2)].expression
), NULL
, NULL
);
3134 (yyval
.expression
)->set_location(yylloc
);
3140 /* Line 1455 of yacc.c */
3141 #line 360 "glsl_parser.ypp"
3144 (yyval
.expression
) = new(ctx
) ast_expression(ast_field_selection
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
), NULL
);
3145 (yyval
.expression
)->set_location(yylloc
);
3151 /* Line 1455 of yacc.c */
3152 #line 379 "glsl_parser.ypp"
3154 (yyval
.expression
) = (yyvsp
[(1) - (2)].expression
);
3155 (yyval
.expression
)->set_location(yylloc
);
3156 (yyval
.expression
)->expressions
.push_tail(& (yyvsp
[(2) - (2)].expression
)->link
);
3162 /* Line 1455 of yacc.c */
3163 #line 385 "glsl_parser.ypp"
3165 (yyval
.expression
) = (yyvsp
[(1) - (3)].expression
);
3166 (yyval
.expression
)->set_location(yylloc
);
3167 (yyval
.expression
)->expressions
.push_tail(& (yyvsp
[(3) - (3)].expression
)->link
);
3173 /* Line 1455 of yacc.c */
3174 #line 401 "glsl_parser.ypp"
3177 (yyval
.expression
) = new(ctx
) ast_function_expression((yyvsp
[(1) - (1)].type_specifier
));
3178 (yyval
.expression
)->set_location(yylloc
);
3184 /* Line 1455 of yacc.c */
3185 #line 407 "glsl_parser.ypp"
3188 ast_expression
*callee
= new(ctx
) ast_expression((yyvsp
[(1) - (1)].identifier
));
3189 (yyval
.expression
) = new(ctx
) ast_function_expression(callee
);
3190 (yyval
.expression
)->set_location(yylloc
);
3196 /* Line 1455 of yacc.c */
3197 #line 414 "glsl_parser.ypp"
3200 ast_expression
*callee
= new(ctx
) ast_expression((yyvsp
[(1) - (1)].identifier
));
3201 (yyval
.expression
) = new(ctx
) ast_function_expression(callee
);
3202 (yyval
.expression
)->set_location(yylloc
);
3208 /* Line 1455 of yacc.c */
3209 #line 426 "glsl_parser.ypp"
3212 (yyval
.expression
) = new(ctx
) ast_expression(ast_pre_inc
, (yyvsp
[(2) - (2)].expression
), NULL
, NULL
);
3213 (yyval
.expression
)->set_location(yylloc
);
3219 /* Line 1455 of yacc.c */
3220 #line 432 "glsl_parser.ypp"
3223 (yyval
.expression
) = new(ctx
) ast_expression(ast_pre_dec
, (yyvsp
[(2) - (2)].expression
), NULL
, NULL
);
3224 (yyval
.expression
)->set_location(yylloc
);
3230 /* Line 1455 of yacc.c */
3231 #line 438 "glsl_parser.ypp"
3234 (yyval
.expression
) = new(ctx
) ast_expression((yyvsp
[(1) - (2)].n
), (yyvsp
[(2) - (2)].expression
), NULL
, NULL
);
3235 (yyval
.expression
)->set_location(yylloc
);
3241 /* Line 1455 of yacc.c */
3242 #line 447 "glsl_parser.ypp"
3243 { (yyval
.n
) = ast_plus
; ;}
3248 /* Line 1455 of yacc.c */
3249 #line 448 "glsl_parser.ypp"
3250 { (yyval
.n
) = ast_neg
; ;}
3255 /* Line 1455 of yacc.c */
3256 #line 449 "glsl_parser.ypp"
3257 { (yyval
.n
) = ast_logic_not
; ;}
3262 /* Line 1455 of yacc.c */
3263 #line 450 "glsl_parser.ypp"
3264 { (yyval
.n
) = ast_bit_not
; ;}
3269 /* Line 1455 of yacc.c */
3270 #line 456 "glsl_parser.ypp"
3273 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_mul
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3274 (yyval
.expression
)->set_location(yylloc
);
3280 /* Line 1455 of yacc.c */
3281 #line 462 "glsl_parser.ypp"
3284 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_div
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3285 (yyval
.expression
)->set_location(yylloc
);
3291 /* Line 1455 of yacc.c */
3292 #line 468 "glsl_parser.ypp"
3295 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_mod
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3296 (yyval
.expression
)->set_location(yylloc
);
3302 /* Line 1455 of yacc.c */
3303 #line 478 "glsl_parser.ypp"
3306 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_add
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3307 (yyval
.expression
)->set_location(yylloc
);
3313 /* Line 1455 of yacc.c */
3314 #line 484 "glsl_parser.ypp"
3317 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_sub
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3318 (yyval
.expression
)->set_location(yylloc
);
3324 /* Line 1455 of yacc.c */
3325 #line 494 "glsl_parser.ypp"
3328 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_lshift
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3329 (yyval
.expression
)->set_location(yylloc
);
3335 /* Line 1455 of yacc.c */
3336 #line 500 "glsl_parser.ypp"
3339 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_rshift
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3340 (yyval
.expression
)->set_location(yylloc
);
3346 /* Line 1455 of yacc.c */
3347 #line 510 "glsl_parser.ypp"
3350 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_less
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3351 (yyval
.expression
)->set_location(yylloc
);
3357 /* Line 1455 of yacc.c */
3358 #line 516 "glsl_parser.ypp"
3361 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_greater
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3362 (yyval
.expression
)->set_location(yylloc
);
3368 /* Line 1455 of yacc.c */
3369 #line 522 "glsl_parser.ypp"
3372 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_lequal
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3373 (yyval
.expression
)->set_location(yylloc
);
3379 /* Line 1455 of yacc.c */
3380 #line 528 "glsl_parser.ypp"
3383 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_gequal
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3384 (yyval
.expression
)->set_location(yylloc
);
3390 /* Line 1455 of yacc.c */
3391 #line 538 "glsl_parser.ypp"
3394 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_equal
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3395 (yyval
.expression
)->set_location(yylloc
);
3401 /* Line 1455 of yacc.c */
3402 #line 544 "glsl_parser.ypp"
3405 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_nequal
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3406 (yyval
.expression
)->set_location(yylloc
);
3412 /* Line 1455 of yacc.c */
3413 #line 554 "glsl_parser.ypp"
3416 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_bit_or
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3417 (yyval
.expression
)->set_location(yylloc
);
3423 /* Line 1455 of yacc.c */
3424 #line 564 "glsl_parser.ypp"
3427 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_bit_xor
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3428 (yyval
.expression
)->set_location(yylloc
);
3434 /* Line 1455 of yacc.c */
3435 #line 574 "glsl_parser.ypp"
3438 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_bit_or
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3439 (yyval
.expression
)->set_location(yylloc
);
3445 /* Line 1455 of yacc.c */
3446 #line 584 "glsl_parser.ypp"
3449 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_logic_and
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3450 (yyval
.expression
)->set_location(yylloc
);
3456 /* Line 1455 of yacc.c */
3457 #line 594 "glsl_parser.ypp"
3460 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_logic_xor
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3461 (yyval
.expression
)->set_location(yylloc
);
3467 /* Line 1455 of yacc.c */
3468 #line 604 "glsl_parser.ypp"
3471 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_logic_or
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3472 (yyval
.expression
)->set_location(yylloc
);
3478 /* Line 1455 of yacc.c */
3479 #line 614 "glsl_parser.ypp"
3482 (yyval
.expression
) = new(ctx
) ast_expression(ast_conditional
, (yyvsp
[(1) - (5)].expression
), (yyvsp
[(3) - (5)].expression
), (yyvsp
[(5) - (5)].expression
));
3483 (yyval
.expression
)->set_location(yylloc
);
3489 /* Line 1455 of yacc.c */
3490 #line 624 "glsl_parser.ypp"
3493 (yyval
.expression
) = new(ctx
) ast_expression((yyvsp
[(2) - (3)].n
), (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
), NULL
);
3494 (yyval
.expression
)->set_location(yylloc
);
3500 /* Line 1455 of yacc.c */
3501 #line 632 "glsl_parser.ypp"
3502 { (yyval
.n
) = ast_assign
; ;}
3507 /* Line 1455 of yacc.c */
3508 #line 633 "glsl_parser.ypp"
3509 { (yyval
.n
) = ast_mul_assign
; ;}
3514 /* Line 1455 of yacc.c */
3515 #line 634 "glsl_parser.ypp"
3516 { (yyval
.n
) = ast_div_assign
; ;}
3521 /* Line 1455 of yacc.c */
3522 #line 635 "glsl_parser.ypp"
3523 { (yyval
.n
) = ast_mod_assign
; ;}
3528 /* Line 1455 of yacc.c */
3529 #line 636 "glsl_parser.ypp"
3530 { (yyval
.n
) = ast_add_assign
; ;}
3535 /* Line 1455 of yacc.c */
3536 #line 637 "glsl_parser.ypp"
3537 { (yyval
.n
) = ast_sub_assign
; ;}
3542 /* Line 1455 of yacc.c */
3543 #line 638 "glsl_parser.ypp"
3544 { (yyval
.n
) = ast_ls_assign
; ;}
3549 /* Line 1455 of yacc.c */
3550 #line 639 "glsl_parser.ypp"
3551 { (yyval
.n
) = ast_rs_assign
; ;}
3556 /* Line 1455 of yacc.c */
3557 #line 640 "glsl_parser.ypp"
3558 { (yyval
.n
) = ast_and_assign
; ;}
3563 /* Line 1455 of yacc.c */
3564 #line 641 "glsl_parser.ypp"
3565 { (yyval
.n
) = ast_xor_assign
; ;}
3570 /* Line 1455 of yacc.c */
3571 #line 642 "glsl_parser.ypp"
3572 { (yyval
.n
) = ast_or_assign
; ;}
3577 /* Line 1455 of yacc.c */
3578 #line 647 "glsl_parser.ypp"
3580 (yyval
.expression
) = (yyvsp
[(1) - (1)].expression
);
3586 /* Line 1455 of yacc.c */
3587 #line 651 "glsl_parser.ypp"
3590 if ((yyvsp
[(1) - (3)].expression
)->oper
!= ast_sequence
) {
3591 (yyval
.expression
) = new(ctx
) ast_expression(ast_sequence
, NULL
, NULL
, NULL
);
3592 (yyval
.expression
)->set_location(yylloc
);
3593 (yyval
.expression
)->expressions
.push_tail(& (yyvsp
[(1) - (3)].expression
)->link
);
3595 (yyval
.expression
) = (yyvsp
[(1) - (3)].expression
);
3598 (yyval
.expression
)->expressions
.push_tail(& (yyvsp
[(3) - (3)].expression
)->link
);
3604 /* Line 1455 of yacc.c */
3605 #line 671 "glsl_parser.ypp"
3607 (yyval
.node
) = (yyvsp
[(1) - (2)].function
);
3613 /* Line 1455 of yacc.c */
3614 #line 675 "glsl_parser.ypp"
3616 (yyval
.node
) = (yyvsp
[(1) - (2)].declarator_list
);
3622 /* Line 1455 of yacc.c */
3623 #line 679 "glsl_parser.ypp"
3625 if (((yyvsp
[(3) - (4)].type_specifier
)->type_specifier
!= ast_float
)
3626 && ((yyvsp
[(3) - (4)].type_specifier
)->type_specifier
!= ast_int
)) {
3627 _mesa_glsl_error(& (yylsp
[(3) - (4)]), state
, "global precision qualifier can "
3628 "only be applied to `int' or `float'\n");
3632 (yyval
.node
) = NULL
; /* FINISHME */
3638 /* Line 1455 of yacc.c */
3639 #line 702 "glsl_parser.ypp"
3641 (yyval
.function
) = (yyvsp
[(1) - (2)].function
);
3642 (yyval
.function
)->parameters
.push_tail(& (yyvsp
[(2) - (2)].parameter_declarator
)->link
);
3648 /* Line 1455 of yacc.c */
3649 #line 707 "glsl_parser.ypp"
3651 (yyval
.function
) = (yyvsp
[(1) - (3)].function
);
3652 (yyval
.function
)->parameters
.push_tail(& (yyvsp
[(3) - (3)].parameter_declarator
)->link
);
3658 /* Line 1455 of yacc.c */
3659 #line 715 "glsl_parser.ypp"
3662 (yyval
.function
) = new(ctx
) ast_function();
3663 (yyval
.function
)->set_location(yylloc
);
3664 (yyval
.function
)->return_type
= (yyvsp
[(1) - (3)].fully_specified_type
);
3665 (yyval
.function
)->identifier
= (yyvsp
[(2) - (3)].identifier
);
3671 /* Line 1455 of yacc.c */
3672 #line 726 "glsl_parser.ypp"
3675 (yyval
.parameter_declarator
) = new(ctx
) ast_parameter_declarator();
3676 (yyval
.parameter_declarator
)->set_location(yylloc
);
3677 (yyval
.parameter_declarator
)->type
= new(ctx
) ast_fully_specified_type();
3678 (yyval
.parameter_declarator
)->type
->set_location(yylloc
);
3679 (yyval
.parameter_declarator
)->type
->specifier
= (yyvsp
[(1) - (2)].type_specifier
);
3680 (yyval
.parameter_declarator
)->identifier
= (yyvsp
[(2) - (2)].identifier
);
3686 /* Line 1455 of yacc.c */
3687 #line 736 "glsl_parser.ypp"
3690 (yyval
.parameter_declarator
) = new(ctx
) ast_parameter_declarator();
3691 (yyval
.parameter_declarator
)->set_location(yylloc
);
3692 (yyval
.parameter_declarator
)->type
= new(ctx
) ast_fully_specified_type();
3693 (yyval
.parameter_declarator
)->type
->set_location(yylloc
);
3694 (yyval
.parameter_declarator
)->type
->specifier
= (yyvsp
[(1) - (5)].type_specifier
);
3695 (yyval
.parameter_declarator
)->identifier
= (yyvsp
[(2) - (5)].identifier
);
3696 (yyval
.parameter_declarator
)->is_array
= true;
3697 (yyval
.parameter_declarator
)->array_size
= (yyvsp
[(4) - (5)].expression
);
3703 /* Line 1455 of yacc.c */
3704 #line 751 "glsl_parser.ypp"
3706 (yyvsp
[(1) - (3)].type_qualifier
).i
|= (yyvsp
[(2) - (3)].type_qualifier
).i
;
3708 (yyval
.parameter_declarator
) = (yyvsp
[(3) - (3)].parameter_declarator
);
3709 (yyval
.parameter_declarator
)->type
->qualifier
= (yyvsp
[(1) - (3)].type_qualifier
).q
;
3715 /* Line 1455 of yacc.c */
3716 #line 758 "glsl_parser.ypp"
3718 (yyval
.parameter_declarator
) = (yyvsp
[(2) - (2)].parameter_declarator
);
3719 (yyval
.parameter_declarator
)->type
->qualifier
= (yyvsp
[(1) - (2)].type_qualifier
).q
;
3725 /* Line 1455 of yacc.c */
3726 #line 763 "glsl_parser.ypp"
3729 (yyvsp
[(1) - (3)].type_qualifier
).i
|= (yyvsp
[(2) - (3)].type_qualifier
).i
;
3731 (yyval
.parameter_declarator
) = new(ctx
) ast_parameter_declarator();
3732 (yyval
.parameter_declarator
)->set_location(yylloc
);
3733 (yyval
.parameter_declarator
)->type
= new(ctx
) ast_fully_specified_type();
3734 (yyval
.parameter_declarator
)->type
->qualifier
= (yyvsp
[(1) - (3)].type_qualifier
).q
;
3735 (yyval
.parameter_declarator
)->type
->specifier
= (yyvsp
[(3) - (3)].type_specifier
);
3741 /* Line 1455 of yacc.c */
3742 #line 774 "glsl_parser.ypp"
3745 (yyval
.parameter_declarator
) = new(ctx
) ast_parameter_declarator();
3746 (yyval
.parameter_declarator
)->set_location(yylloc
);
3747 (yyval
.parameter_declarator
)->type
= new(ctx
) ast_fully_specified_type();
3748 (yyval
.parameter_declarator
)->type
->qualifier
= (yyvsp
[(1) - (2)].type_qualifier
).q
;
3749 (yyval
.parameter_declarator
)->type
->specifier
= (yyvsp
[(2) - (2)].type_specifier
);
3755 /* Line 1455 of yacc.c */
3756 #line 785 "glsl_parser.ypp"
3757 { (yyval
.type_qualifier
).i
= 0; ;}
3762 /* Line 1455 of yacc.c */
3763 #line 786 "glsl_parser.ypp"
3764 { (yyval
.type_qualifier
).i
= 0; (yyval
.type_qualifier
).q
.in
= 1; ;}
3769 /* Line 1455 of yacc.c */
3770 #line 787 "glsl_parser.ypp"
3771 { (yyval
.type_qualifier
).i
= 0; (yyval
.type_qualifier
).q
.out
= 1; ;}
3776 /* Line 1455 of yacc.c */
3777 #line 788 "glsl_parser.ypp"
3778 { (yyval
.type_qualifier
).i
= 0; (yyval
.type_qualifier
).q
.in
= 1; (yyval
.type_qualifier
).q
.out
= 1; ;}
3783 /* Line 1455 of yacc.c */
3784 #line 798 "glsl_parser.ypp"
3787 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(3) - (3)].identifier
), false, NULL
, NULL
);
3788 decl
->set_location(yylloc
);
3790 (yyval
.declarator_list
) = (yyvsp
[(1) - (3)].declarator_list
);
3791 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3797 /* Line 1455 of yacc.c */
3798 #line 807 "glsl_parser.ypp"
3801 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(3) - (5)].identifier
), true, NULL
, NULL
);
3802 decl
->set_location(yylloc
);
3804 (yyval
.declarator_list
) = (yyvsp
[(1) - (5)].declarator_list
);
3805 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3811 /* Line 1455 of yacc.c */
3812 #line 816 "glsl_parser.ypp"
3815 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(3) - (6)].identifier
), true, (yyvsp
[(5) - (6)].expression
), NULL
);
3816 decl
->set_location(yylloc
);
3818 (yyval
.declarator_list
) = (yyvsp
[(1) - (6)].declarator_list
);
3819 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3825 /* Line 1455 of yacc.c */
3826 #line 825 "glsl_parser.ypp"
3829 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(3) - (7)].identifier
), true, NULL
, (yyvsp
[(7) - (7)].expression
));
3830 decl
->set_location(yylloc
);
3832 (yyval
.declarator_list
) = (yyvsp
[(1) - (7)].declarator_list
);
3833 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3839 /* Line 1455 of yacc.c */
3840 #line 834 "glsl_parser.ypp"
3843 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(3) - (8)].identifier
), true, (yyvsp
[(5) - (8)].expression
), (yyvsp
[(8) - (8)].expression
));
3844 decl
->set_location(yylloc
);
3846 (yyval
.declarator_list
) = (yyvsp
[(1) - (8)].declarator_list
);
3847 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3853 /* Line 1455 of yacc.c */
3854 #line 843 "glsl_parser.ypp"
3857 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(3) - (5)].identifier
), false, NULL
, (yyvsp
[(5) - (5)].expression
));
3858 decl
->set_location(yylloc
);
3860 (yyval
.declarator_list
) = (yyvsp
[(1) - (5)].declarator_list
);
3861 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3867 /* Line 1455 of yacc.c */
3868 #line 856 "glsl_parser.ypp"
3871 if ((yyvsp
[(1) - (1)].fully_specified_type
)->specifier
->type_specifier
!= ast_struct
) {
3872 _mesa_glsl_error(& (yylsp
[(1) - (1)]), state
, "empty declaration list\n");
3875 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list((yyvsp
[(1) - (1)].fully_specified_type
));
3876 (yyval
.declarator_list
)->set_location(yylloc
);
3883 /* Line 1455 of yacc.c */
3884 #line 867 "glsl_parser.ypp"
3887 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(2) - (2)].identifier
), false, NULL
, NULL
);
3889 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list((yyvsp
[(1) - (2)].fully_specified_type
));
3890 (yyval
.declarator_list
)->set_location(yylloc
);
3891 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3897 /* Line 1455 of yacc.c */
3898 #line 876 "glsl_parser.ypp"
3901 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(2) - (4)].identifier
), true, NULL
, NULL
);
3903 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list((yyvsp
[(1) - (4)].fully_specified_type
));
3904 (yyval
.declarator_list
)->set_location(yylloc
);
3905 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3911 /* Line 1455 of yacc.c */
3912 #line 885 "glsl_parser.ypp"
3915 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(2) - (5)].identifier
), true, (yyvsp
[(4) - (5)].expression
), NULL
);
3917 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list((yyvsp
[(1) - (5)].fully_specified_type
));
3918 (yyval
.declarator_list
)->set_location(yylloc
);
3919 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3925 /* Line 1455 of yacc.c */
3926 #line 894 "glsl_parser.ypp"
3929 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(2) - (6)].identifier
), true, NULL
, (yyvsp
[(6) - (6)].expression
));
3931 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list((yyvsp
[(1) - (6)].fully_specified_type
));
3932 (yyval
.declarator_list
)->set_location(yylloc
);
3933 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3939 /* Line 1455 of yacc.c */
3940 #line 903 "glsl_parser.ypp"
3943 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(2) - (7)].identifier
), true, (yyvsp
[(4) - (7)].expression
), (yyvsp
[(7) - (7)].expression
));
3945 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list((yyvsp
[(1) - (7)].fully_specified_type
));
3946 (yyval
.declarator_list
)->set_location(yylloc
);
3947 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3953 /* Line 1455 of yacc.c */
3954 #line 912 "glsl_parser.ypp"
3957 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(2) - (4)].identifier
), false, NULL
, (yyvsp
[(4) - (4)].expression
));
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 1455 of yacc.c */
3968 #line 921 "glsl_parser.ypp"
3971 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(2) - (2)].identifier
), false, NULL
, NULL
);
3973 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list(NULL
);
3974 (yyval
.declarator_list
)->set_location(yylloc
);
3975 (yyval
.declarator_list
)->invariant
= true;
3977 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3983 /* Line 1455 of yacc.c */
3984 #line 935 "glsl_parser.ypp"
3987 (yyval
.fully_specified_type
) = new(ctx
) ast_fully_specified_type();
3988 (yyval
.fully_specified_type
)->set_location(yylloc
);
3989 (yyval
.fully_specified_type
)->specifier
= (yyvsp
[(1) - (1)].type_specifier
);
3995 /* Line 1455 of yacc.c */
3996 #line 942 "glsl_parser.ypp"
3999 (yyval
.fully_specified_type
) = new(ctx
) ast_fully_specified_type();
4000 (yyval
.fully_specified_type
)->set_location(yylloc
);
4001 (yyval
.fully_specified_type
)->qualifier
= (yyvsp
[(1) - (2)].type_qualifier
).q
;
4002 (yyval
.fully_specified_type
)->specifier
= (yyvsp
[(2) - (2)].type_specifier
);
4008 /* Line 1455 of yacc.c */
4009 #line 952 "glsl_parser.ypp"
4010 { (yyval
.type_qualifier
).i
= 0; ;}
4015 /* Line 1455 of yacc.c */
4016 #line 958 "glsl_parser.ypp"
4018 (yyval
.type_qualifier
) = (yyvsp
[(3) - (4)].type_qualifier
);
4024 /* Line 1455 of yacc.c */
4025 #line 966 "glsl_parser.ypp"
4027 (yyval
.type_qualifier
).i
= (yyvsp
[(1) - (3)].type_qualifier
).i
| (yyvsp
[(3) - (3)].type_qualifier
).i
;
4033 /* Line 1455 of yacc.c */
4034 #line 973 "glsl_parser.ypp"
4036 (yyval
.type_qualifier
).i
= 0;
4038 if (state
->ARB_fragment_coord_conventions_enable
) {
4039 bool got_one
= false;
4041 if (strcmp((yyvsp
[(1) - (1)].identifier
), "origin_upper_left") == 0) {
4043 (yyval
.type_qualifier
).q
.origin_upper_left
= 1;
4044 } else if (strcmp((yyvsp
[(1) - (1)].identifier
), "pixel_center_integer") == 0) {
4046 (yyval
.type_qualifier
).q
.pixel_center_integer
= 1;
4049 if (state
->ARB_fragment_coord_conventions_warn
&& got_one
) {
4050 _mesa_glsl_warning(& (yylsp
[(1) - (1)]), state
,
4051 "GL_ARB_fragment_coord_conventions layout "
4052 "identifier `%s' used\n", (yyvsp
[(1) - (1)].identifier
));
4056 /* If the identifier didn't match any known layout identifiers,
4059 if ((yyval
.type_qualifier
).i
== 0) {
4060 _mesa_glsl_error(& (yylsp
[(1) - (1)]), state
, "unrecognized layout identifier "
4061 "`%s'\n", (yyvsp
[(1) - (1)].identifier
));
4069 /* Line 1455 of yacc.c */
4070 #line 1006 "glsl_parser.ypp"
4071 { (yyval
.type_qualifier
).i
= 0; (yyval
.type_qualifier
).q
.smooth
= 1; ;}
4076 /* Line 1455 of yacc.c */
4077 #line 1007 "glsl_parser.ypp"
4078 { (yyval
.type_qualifier
).i
= 0; (yyval
.type_qualifier
).q
.flat
= 1; ;}
4083 /* Line 1455 of yacc.c */
4084 #line 1008 "glsl_parser.ypp"
4085 { (yyval
.type_qualifier
).i
= 0; (yyval
.type_qualifier
).q
.noperspective
= 1; ;}
4090 /* Line 1455 of yacc.c */
4091 #line 1012 "glsl_parser.ypp"
4092 { (yyval
.type_qualifier
).i
= 0; (yyval
.type_qualifier
).q
.constant
= 1; ;}
4097 /* Line 1455 of yacc.c */
4098 #line 1018 "glsl_parser.ypp"
4100 (yyval
.type_qualifier
).i
= (yyvsp
[(1) - (2)].type_qualifier
).i
| (yyvsp
[(2) - (2)].type_qualifier
).i
;
4106 /* Line 1455 of yacc.c */
4107 #line 1022 "glsl_parser.ypp"
4109 (yyval
.type_qualifier
) = (yyvsp
[(2) - (2)].type_qualifier
);
4110 (yyval
.type_qualifier
).q
.invariant
= 1;
4116 /* Line 1455 of yacc.c */
4117 #line 1029 "glsl_parser.ypp"
4118 { (yyval
.type_qualifier
).i
= 0; (yyval
.type_qualifier
).q
.constant
= 1; ;}
4123 /* Line 1455 of yacc.c */
4124 #line 1030 "glsl_parser.ypp"
4125 { (yyval
.type_qualifier
).i
= 0; (yyval
.type_qualifier
).q
.attribute
= 1; ;}
4130 /* Line 1455 of yacc.c */
4131 #line 1031 "glsl_parser.ypp"
4132 { (yyval
.type_qualifier
).i
= (yyvsp
[(1) - (2)].type_qualifier
).i
; (yyval
.type_qualifier
).q
.varying
= 1; ;}
4137 /* Line 1455 of yacc.c */
4138 #line 1032 "glsl_parser.ypp"
4139 { (yyval
.type_qualifier
).i
= 0; (yyval
.type_qualifier
).q
.centroid
= 1; (yyval
.type_qualifier
).q
.varying
= 1; ;}
4144 /* Line 1455 of yacc.c */
4145 #line 1033 "glsl_parser.ypp"
4146 { (yyval
.type_qualifier
).i
= 0; (yyval
.type_qualifier
).q
.in
= 1; ;}
4151 /* Line 1455 of yacc.c */
4152 #line 1034 "glsl_parser.ypp"
4153 { (yyval
.type_qualifier
).i
= 0; (yyval
.type_qualifier
).q
.out
= 1; ;}
4158 /* Line 1455 of yacc.c */
4159 #line 1035 "glsl_parser.ypp"
4160 { (yyval
.type_qualifier
).i
= 0; (yyval
.type_qualifier
).q
.centroid
= 1; (yyval
.type_qualifier
).q
.in
= 1; ;}
4165 /* Line 1455 of yacc.c */
4166 #line 1036 "glsl_parser.ypp"
4167 { (yyval
.type_qualifier
).i
= 0; (yyval
.type_qualifier
).q
.centroid
= 1; (yyval
.type_qualifier
).q
.out
= 1; ;}
4172 /* Line 1455 of yacc.c */
4173 #line 1037 "glsl_parser.ypp"
4174 { (yyval
.type_qualifier
).i
= 0; (yyval
.type_qualifier
).q
.uniform
= 1; ;}
4179 /* Line 1455 of yacc.c */
4180 #line 1043 "glsl_parser.ypp"
4182 (yyval
.type_specifier
) = (yyvsp
[(2) - (2)].type_specifier
);
4183 (yyval
.type_specifier
)->precision
= (yyvsp
[(1) - (2)].n
);
4189 /* Line 1455 of yacc.c */
4190 #line 1052 "glsl_parser.ypp"
4192 (yyval
.type_specifier
) = (yyvsp
[(1) - (3)].type_specifier
);
4193 (yyval
.type_specifier
)->is_array
= true;
4194 (yyval
.type_specifier
)->array_size
= NULL
;
4200 /* Line 1455 of yacc.c */
4201 #line 1058 "glsl_parser.ypp"
4203 (yyval
.type_specifier
) = (yyvsp
[(1) - (4)].type_specifier
);
4204 (yyval
.type_specifier
)->is_array
= true;
4205 (yyval
.type_specifier
)->array_size
= (yyvsp
[(3) - (4)].expression
);
4211 /* Line 1455 of yacc.c */
4212 #line 1067 "glsl_parser.ypp"
4215 (yyval
.type_specifier
) = new(ctx
) ast_type_specifier((yyvsp
[(1) - (1)].n
));
4216 (yyval
.type_specifier
)->set_location(yylloc
);
4222 /* Line 1455 of yacc.c */
4223 #line 1073 "glsl_parser.ypp"
4226 (yyval
.type_specifier
) = new(ctx
) ast_type_specifier((yyvsp
[(1) - (1)].struct_specifier
));
4227 (yyval
.type_specifier
)->set_location(yylloc
);
4233 /* Line 1455 of yacc.c */
4234 #line 1079 "glsl_parser.ypp"
4237 (yyval
.type_specifier
) = new(ctx
) ast_type_specifier((yyvsp
[(1) - (1)].identifier
));
4238 (yyval
.type_specifier
)->set_location(yylloc
);
4244 /* Line 1455 of yacc.c */
4245 #line 1087 "glsl_parser.ypp"
4246 { (yyval
.n
) = ast_void
; ;}
4251 /* Line 1455 of yacc.c */
4252 #line 1088 "glsl_parser.ypp"
4253 { (yyval
.n
) = ast_float
; ;}
4258 /* Line 1455 of yacc.c */
4259 #line 1089 "glsl_parser.ypp"
4260 { (yyval
.n
) = ast_int
; ;}
4265 /* Line 1455 of yacc.c */
4266 #line 1090 "glsl_parser.ypp"
4267 { (yyval
.n
) = ast_uint
; ;}
4272 /* Line 1455 of yacc.c */
4273 #line 1091 "glsl_parser.ypp"
4274 { (yyval
.n
) = ast_bool
; ;}
4279 /* Line 1455 of yacc.c */
4280 #line 1092 "glsl_parser.ypp"
4281 { (yyval
.n
) = ast_vec2
; ;}
4286 /* Line 1455 of yacc.c */
4287 #line 1093 "glsl_parser.ypp"
4288 { (yyval
.n
) = ast_vec3
; ;}
4293 /* Line 1455 of yacc.c */
4294 #line 1094 "glsl_parser.ypp"
4295 { (yyval
.n
) = ast_vec4
; ;}
4300 /* Line 1455 of yacc.c */
4301 #line 1095 "glsl_parser.ypp"
4302 { (yyval
.n
) = ast_bvec2
; ;}
4307 /* Line 1455 of yacc.c */
4308 #line 1096 "glsl_parser.ypp"
4309 { (yyval
.n
) = ast_bvec3
; ;}
4314 /* Line 1455 of yacc.c */
4315 #line 1097 "glsl_parser.ypp"
4316 { (yyval
.n
) = ast_bvec4
; ;}
4321 /* Line 1455 of yacc.c */
4322 #line 1098 "glsl_parser.ypp"
4323 { (yyval
.n
) = ast_ivec2
; ;}
4328 /* Line 1455 of yacc.c */
4329 #line 1099 "glsl_parser.ypp"
4330 { (yyval
.n
) = ast_ivec3
; ;}
4335 /* Line 1455 of yacc.c */
4336 #line 1100 "glsl_parser.ypp"
4337 { (yyval
.n
) = ast_ivec4
; ;}
4342 /* Line 1455 of yacc.c */
4343 #line 1101 "glsl_parser.ypp"
4344 { (yyval
.n
) = ast_uvec2
; ;}
4349 /* Line 1455 of yacc.c */
4350 #line 1102 "glsl_parser.ypp"
4351 { (yyval
.n
) = ast_uvec3
; ;}
4356 /* Line 1455 of yacc.c */
4357 #line 1103 "glsl_parser.ypp"
4358 { (yyval
.n
) = ast_uvec4
; ;}
4363 /* Line 1455 of yacc.c */
4364 #line 1104 "glsl_parser.ypp"
4365 { (yyval
.n
) = ast_mat2
; ;}
4370 /* Line 1455 of yacc.c */
4371 #line 1105 "glsl_parser.ypp"
4372 { (yyval
.n
) = ast_mat3
; ;}
4377 /* Line 1455 of yacc.c */
4378 #line 1106 "glsl_parser.ypp"
4379 { (yyval
.n
) = ast_mat4
; ;}
4384 /* Line 1455 of yacc.c */
4385 #line 1107 "glsl_parser.ypp"
4386 { (yyval
.n
) = ast_mat2
; ;}
4391 /* Line 1455 of yacc.c */
4392 #line 1108 "glsl_parser.ypp"
4393 { (yyval
.n
) = ast_mat2x3
; ;}
4398 /* Line 1455 of yacc.c */
4399 #line 1109 "glsl_parser.ypp"
4400 { (yyval
.n
) = ast_mat2x4
; ;}
4405 /* Line 1455 of yacc.c */
4406 #line 1110 "glsl_parser.ypp"
4407 { (yyval
.n
) = ast_mat3x2
; ;}
4412 /* Line 1455 of yacc.c */
4413 #line 1111 "glsl_parser.ypp"
4414 { (yyval
.n
) = ast_mat3
; ;}
4419 /* Line 1455 of yacc.c */
4420 #line 1112 "glsl_parser.ypp"
4421 { (yyval
.n
) = ast_mat3x4
; ;}
4426 /* Line 1455 of yacc.c */
4427 #line 1113 "glsl_parser.ypp"
4428 { (yyval
.n
) = ast_mat4x2
; ;}
4433 /* Line 1455 of yacc.c */
4434 #line 1114 "glsl_parser.ypp"
4435 { (yyval
.n
) = ast_mat4x3
; ;}
4440 /* Line 1455 of yacc.c */
4441 #line 1115 "glsl_parser.ypp"
4442 { (yyval
.n
) = ast_mat4
; ;}
4447 /* Line 1455 of yacc.c */
4448 #line 1116 "glsl_parser.ypp"
4449 { (yyval
.n
) = ast_sampler1d
; ;}
4454 /* Line 1455 of yacc.c */
4455 #line 1117 "glsl_parser.ypp"
4456 { (yyval
.n
) = ast_sampler2d
; ;}
4461 /* Line 1455 of yacc.c */
4462 #line 1118 "glsl_parser.ypp"
4463 { (yyval
.n
) = ast_sampler2drect
; ;}
4468 /* Line 1455 of yacc.c */
4469 #line 1119 "glsl_parser.ypp"
4470 { (yyval
.n
) = ast_sampler3d
; ;}
4475 /* Line 1455 of yacc.c */
4476 #line 1120 "glsl_parser.ypp"
4477 { (yyval
.n
) = ast_samplercube
; ;}
4482 /* Line 1455 of yacc.c */
4483 #line 1121 "glsl_parser.ypp"
4484 { (yyval
.n
) = ast_sampler1dshadow
; ;}
4489 /* Line 1455 of yacc.c */
4490 #line 1122 "glsl_parser.ypp"
4491 { (yyval
.n
) = ast_sampler2dshadow
; ;}
4496 /* Line 1455 of yacc.c */
4497 #line 1123 "glsl_parser.ypp"
4498 { (yyval
.n
) = ast_sampler2drectshadow
; ;}
4503 /* Line 1455 of yacc.c */
4504 #line 1124 "glsl_parser.ypp"
4505 { (yyval
.n
) = ast_samplercubeshadow
; ;}
4510 /* Line 1455 of yacc.c */
4511 #line 1125 "glsl_parser.ypp"
4512 { (yyval
.n
) = ast_sampler1darray
; ;}
4517 /* Line 1455 of yacc.c */
4518 #line 1126 "glsl_parser.ypp"
4519 { (yyval
.n
) = ast_sampler2darray
; ;}
4524 /* Line 1455 of yacc.c */
4525 #line 1127 "glsl_parser.ypp"
4526 { (yyval
.n
) = ast_sampler1darrayshadow
; ;}
4531 /* Line 1455 of yacc.c */
4532 #line 1128 "glsl_parser.ypp"
4533 { (yyval
.n
) = ast_sampler2darrayshadow
; ;}
4538 /* Line 1455 of yacc.c */
4539 #line 1129 "glsl_parser.ypp"
4540 { (yyval
.n
) = ast_isampler1d
; ;}
4545 /* Line 1455 of yacc.c */
4546 #line 1130 "glsl_parser.ypp"
4547 { (yyval
.n
) = ast_isampler2d
; ;}
4552 /* Line 1455 of yacc.c */
4553 #line 1131 "glsl_parser.ypp"
4554 { (yyval
.n
) = ast_isampler3d
; ;}
4559 /* Line 1455 of yacc.c */
4560 #line 1132 "glsl_parser.ypp"
4561 { (yyval
.n
) = ast_isamplercube
; ;}
4566 /* Line 1455 of yacc.c */
4567 #line 1133 "glsl_parser.ypp"
4568 { (yyval
.n
) = ast_isampler1darray
; ;}
4573 /* Line 1455 of yacc.c */
4574 #line 1134 "glsl_parser.ypp"
4575 { (yyval
.n
) = ast_isampler2darray
; ;}
4580 /* Line 1455 of yacc.c */
4581 #line 1135 "glsl_parser.ypp"
4582 { (yyval
.n
) = ast_usampler1d
; ;}
4587 /* Line 1455 of yacc.c */
4588 #line 1136 "glsl_parser.ypp"
4589 { (yyval
.n
) = ast_usampler2d
; ;}
4594 /* Line 1455 of yacc.c */
4595 #line 1137 "glsl_parser.ypp"
4596 { (yyval
.n
) = ast_usampler3d
; ;}
4601 /* Line 1455 of yacc.c */
4602 #line 1138 "glsl_parser.ypp"
4603 { (yyval
.n
) = ast_usamplercube
; ;}
4608 /* Line 1455 of yacc.c */
4609 #line 1139 "glsl_parser.ypp"
4610 { (yyval
.n
) = ast_usampler1darray
; ;}
4615 /* Line 1455 of yacc.c */
4616 #line 1140 "glsl_parser.ypp"
4617 { (yyval
.n
) = ast_usampler2darray
; ;}
4622 /* Line 1455 of yacc.c */
4623 #line 1144 "glsl_parser.ypp"
4625 if (state
->language_version
< 130)
4626 _mesa_glsl_error(& (yylsp
[(1) - (1)]), state
,
4627 "precision qualifier forbidden "
4628 "in GLSL %d.%d (1.30 or later "
4630 state
->language_version
/ 100,
4631 state
->language_version
% 100);
4633 (yyval
.n
) = ast_precision_high
;
4639 /* Line 1455 of yacc.c */
4640 #line 1155 "glsl_parser.ypp"
4642 if (state
->language_version
< 130)
4643 _mesa_glsl_error(& (yylsp
[(1) - (1)]), state
,
4644 "precision qualifier forbidden "
4645 "in GLSL %d.%d (1.30 or later "
4647 state
->language_version
/ 100,
4648 state
->language_version
% 100);
4650 (yyval
.n
) = ast_precision_medium
;
4656 /* Line 1455 of yacc.c */
4657 #line 1166 "glsl_parser.ypp"
4659 if (state
->language_version
< 130)
4660 _mesa_glsl_error(& (yylsp
[(1) - (1)]), state
,
4661 "precision qualifier forbidden "
4662 "in GLSL %d.%d (1.30 or later "
4664 state
->language_version
/ 100,
4665 state
->language_version
% 100);
4667 (yyval
.n
) = ast_precision_low
;
4673 /* Line 1455 of yacc.c */
4674 #line 1181 "glsl_parser.ypp"
4677 (yyval
.struct_specifier
) = new(ctx
) ast_struct_specifier((yyvsp
[(2) - (5)].identifier
), (yyvsp
[(4) - (5)].node
));
4678 (yyval
.struct_specifier
)->set_location(yylloc
);
4684 /* Line 1455 of yacc.c */
4685 #line 1187 "glsl_parser.ypp"
4688 (yyval
.struct_specifier
) = new(ctx
) ast_struct_specifier(NULL
, (yyvsp
[(3) - (4)].node
));
4689 (yyval
.struct_specifier
)->set_location(yylloc
);
4695 /* Line 1455 of yacc.c */
4696 #line 1196 "glsl_parser.ypp"
4698 (yyval
.node
) = (struct ast_node
*) (yyvsp
[(1) - (1)].declarator_list
);
4699 (yyvsp
[(1) - (1)].declarator_list
)->link
.self_link();
4705 /* Line 1455 of yacc.c */
4706 #line 1201 "glsl_parser.ypp"
4708 (yyval
.node
) = (struct ast_node
*) (yyvsp
[(1) - (2)].node
);
4709 (yyval
.node
)->link
.insert_before(& (yyvsp
[(2) - (2)].declarator_list
)->link
);
4715 /* Line 1455 of yacc.c */
4716 #line 1209 "glsl_parser.ypp"
4719 ast_fully_specified_type
*type
= new(ctx
) ast_fully_specified_type();
4720 type
->set_location(yylloc
);
4722 type
->specifier
= (yyvsp
[(1) - (3)].type_specifier
);
4723 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list(type
);
4724 (yyval
.declarator_list
)->set_location(yylloc
);
4726 (yyval
.declarator_list
)->declarations
.push_degenerate_list_at_head(& (yyvsp
[(2) - (3)].declaration
)->link
);
4732 /* Line 1455 of yacc.c */
4733 #line 1224 "glsl_parser.ypp"
4735 (yyval
.declaration
) = (yyvsp
[(1) - (1)].declaration
);
4736 (yyvsp
[(1) - (1)].declaration
)->link
.self_link();
4742 /* Line 1455 of yacc.c */
4743 #line 1229 "glsl_parser.ypp"
4745 (yyval
.declaration
) = (yyvsp
[(1) - (3)].declaration
);
4746 (yyval
.declaration
)->link
.insert_before(& (yyvsp
[(3) - (3)].declaration
)->link
);
4752 /* Line 1455 of yacc.c */
4753 #line 1237 "glsl_parser.ypp"
4756 (yyval
.declaration
) = new(ctx
) ast_declaration((yyvsp
[(1) - (1)].identifier
), false, NULL
, NULL
);
4757 (yyval
.declaration
)->set_location(yylloc
);
4763 /* Line 1455 of yacc.c */
4764 #line 1243 "glsl_parser.ypp"
4767 (yyval
.declaration
) = new(ctx
) ast_declaration((yyvsp
[(1) - (4)].identifier
), true, (yyvsp
[(3) - (4)].expression
), NULL
);
4768 (yyval
.declaration
)->set_location(yylloc
);
4774 /* Line 1455 of yacc.c */
4775 #line 1266 "glsl_parser.ypp"
4776 { (yyval
.node
) = (struct ast_node
*) (yyvsp
[(1) - (1)].compound_statement
); ;}
4781 /* Line 1455 of yacc.c */
4782 #line 1278 "glsl_parser.ypp"
4783 { (yyval
.node
) = NULL
; ;}
4788 /* Line 1455 of yacc.c */
4789 #line 1279 "glsl_parser.ypp"
4790 { (yyval
.node
) = NULL
; ;}
4795 /* Line 1455 of yacc.c */
4796 #line 1286 "glsl_parser.ypp"
4799 (yyval
.compound_statement
) = new(ctx
) ast_compound_statement(true, NULL
);
4800 (yyval
.compound_statement
)->set_location(yylloc
);
4806 /* Line 1455 of yacc.c */
4807 #line 1292 "glsl_parser.ypp"
4810 (yyval
.compound_statement
) = new(ctx
) ast_compound_statement(true, (yyvsp
[(2) - (3)].node
));
4811 (yyval
.compound_statement
)->set_location(yylloc
);
4817 /* Line 1455 of yacc.c */
4818 #line 1300 "glsl_parser.ypp"
4819 { (yyval
.node
) = (struct ast_node
*) (yyvsp
[(1) - (1)].compound_statement
); ;}
4824 /* Line 1455 of yacc.c */
4825 #line 1306 "glsl_parser.ypp"
4828 (yyval
.compound_statement
) = new(ctx
) ast_compound_statement(false, NULL
);
4829 (yyval
.compound_statement
)->set_location(yylloc
);
4835 /* Line 1455 of yacc.c */
4836 #line 1312 "glsl_parser.ypp"
4839 (yyval
.compound_statement
) = new(ctx
) ast_compound_statement(false, (yyvsp
[(2) - (3)].node
));
4840 (yyval
.compound_statement
)->set_location(yylloc
);
4846 /* Line 1455 of yacc.c */
4847 #line 1321 "glsl_parser.ypp"
4849 if ((yyvsp
[(1) - (1)].node
) == NULL
) {
4850 _mesa_glsl_error(& (yylsp
[(1) - (1)]), state
, "<nil> statement\n");
4851 assert((yyvsp
[(1) - (1)].node
) != NULL
);
4854 (yyval
.node
) = (yyvsp
[(1) - (1)].node
);
4855 (yyval
.node
)->link
.self_link();
4861 /* Line 1455 of yacc.c */
4862 #line 1331 "glsl_parser.ypp"
4864 if ((yyvsp
[(2) - (2)].node
) == NULL
) {
4865 _mesa_glsl_error(& (yylsp
[(2) - (2)]), state
, "<nil> statement\n");
4866 assert((yyvsp
[(2) - (2)].node
) != NULL
);
4868 (yyval
.node
) = (yyvsp
[(1) - (2)].node
);
4869 (yyval
.node
)->link
.insert_before(& (yyvsp
[(2) - (2)].node
)->link
);
4875 /* Line 1455 of yacc.c */
4876 #line 1343 "glsl_parser.ypp"
4879 (yyval
.node
) = new(ctx
) ast_expression_statement(NULL
);
4880 (yyval
.node
)->set_location(yylloc
);
4886 /* Line 1455 of yacc.c */
4887 #line 1349 "glsl_parser.ypp"
4890 (yyval
.node
) = new(ctx
) ast_expression_statement((yyvsp
[(1) - (2)].expression
));
4891 (yyval
.node
)->set_location(yylloc
);
4897 /* Line 1455 of yacc.c */
4898 #line 1358 "glsl_parser.ypp"
4901 (yyval
.node
) = new(ctx
) ast_selection_statement((yyvsp
[(3) - (7)].expression
), (yyvsp
[(5) - (7)].node
), (yyvsp
[(7) - (7)].node
));
4902 (yyval
.node
)->set_location(yylloc
);
4908 /* Line 1455 of yacc.c */
4909 #line 1367 "glsl_parser.ypp"
4912 (yyval
.node
) = new(ctx
) ast_selection_statement((yyvsp
[(3) - (5)].expression
), (yyvsp
[(5) - (5)].node
), NULL
);
4913 (yyval
.node
)->set_location(yylloc
);
4919 /* Line 1455 of yacc.c */
4920 #line 1373 "glsl_parser.ypp"
4923 (yyval
.node
) = new(ctx
) ast_selection_statement((yyvsp
[(3) - (5)].expression
), (yyvsp
[(5) - (5)].node
), NULL
);
4924 (yyval
.node
)->set_location(yylloc
);
4930 /* Line 1455 of yacc.c */
4931 #line 1379 "glsl_parser.ypp"
4934 (yyval
.node
) = new(ctx
) ast_selection_statement((yyvsp
[(3) - (7)].expression
), (yyvsp
[(5) - (7)].node
), (yyvsp
[(7) - (7)].node
));
4935 (yyval
.node
)->set_location(yylloc
);
4941 /* Line 1455 of yacc.c */
4942 #line 1388 "glsl_parser.ypp"
4944 (yyval
.node
) = (struct ast_node
*) (yyvsp
[(1) - (1)].expression
);
4950 /* Line 1455 of yacc.c */
4951 #line 1392 "glsl_parser.ypp"
4954 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(2) - (4)].identifier
), false, NULL
, (yyvsp
[(4) - (4)].expression
));
4955 ast_declarator_list
*declarator
= new(ctx
) ast_declarator_list((yyvsp
[(1) - (4)].fully_specified_type
));
4956 decl
->set_location(yylloc
);
4957 declarator
->set_location(yylloc
);
4959 declarator
->declarations
.push_tail(&decl
->link
);
4960 (yyval
.node
) = declarator
;
4966 /* Line 1455 of yacc.c */
4967 #line 1415 "glsl_parser.ypp"
4970 (yyval
.node
) = new(ctx
) ast_iteration_statement(ast_iteration_statement::ast_while
,
4971 NULL
, (yyvsp
[(3) - (5)].node
), NULL
, (yyvsp
[(5) - (5)].node
));
4972 (yyval
.node
)->set_location(yylloc
);
4978 /* Line 1455 of yacc.c */
4979 #line 1422 "glsl_parser.ypp"
4982 (yyval
.node
) = new(ctx
) ast_iteration_statement(ast_iteration_statement::ast_do_while
,
4983 NULL
, (yyvsp
[(5) - (7)].expression
), NULL
, (yyvsp
[(2) - (7)].node
));
4984 (yyval
.node
)->set_location(yylloc
);
4990 /* Line 1455 of yacc.c */
4991 #line 1429 "glsl_parser.ypp"
4994 (yyval
.node
) = new(ctx
) ast_iteration_statement(ast_iteration_statement::ast_for
,
4995 (yyvsp
[(3) - (6)].node
), (yyvsp
[(4) - (6)].for_rest_statement
).cond
, (yyvsp
[(4) - (6)].for_rest_statement
).rest
, (yyvsp
[(6) - (6)].node
));
4996 (yyval
.node
)->set_location(yylloc
);
5002 /* Line 1455 of yacc.c */
5003 #line 1445 "glsl_parser.ypp"
5005 (yyval
.node
) = NULL
;
5011 /* Line 1455 of yacc.c */
5012 #line 1452 "glsl_parser.ypp"
5014 (yyval
.for_rest_statement
).cond
= (yyvsp
[(1) - (2)].node
);
5015 (yyval
.for_rest_statement
).rest
= NULL
;
5021 /* Line 1455 of yacc.c */
5022 #line 1457 "glsl_parser.ypp"
5024 (yyval
.for_rest_statement
).cond
= (yyvsp
[(1) - (3)].node
);
5025 (yyval
.for_rest_statement
).rest
= (yyvsp
[(3) - (3)].expression
);
5031 /* Line 1455 of yacc.c */
5032 #line 1466 "glsl_parser.ypp"
5035 (yyval
.node
) = new(ctx
) ast_jump_statement(ast_jump_statement::ast_continue
, NULL
);
5036 (yyval
.node
)->set_location(yylloc
);
5042 /* Line 1455 of yacc.c */
5043 #line 1472 "glsl_parser.ypp"
5046 (yyval
.node
) = new(ctx
) ast_jump_statement(ast_jump_statement::ast_break
, NULL
);
5047 (yyval
.node
)->set_location(yylloc
);
5053 /* Line 1455 of yacc.c */
5054 #line 1478 "glsl_parser.ypp"
5057 (yyval
.node
) = new(ctx
) ast_jump_statement(ast_jump_statement::ast_return
, NULL
);
5058 (yyval
.node
)->set_location(yylloc
);
5064 /* Line 1455 of yacc.c */
5065 #line 1484 "glsl_parser.ypp"
5068 (yyval
.node
) = new(ctx
) ast_jump_statement(ast_jump_statement::ast_return
, (yyvsp
[(2) - (3)].expression
));
5069 (yyval
.node
)->set_location(yylloc
);
5075 /* Line 1455 of yacc.c */
5076 #line 1490 "glsl_parser.ypp"
5079 (yyval
.node
) = new(ctx
) ast_jump_statement(ast_jump_statement::ast_discard
, NULL
);
5080 (yyval
.node
)->set_location(yylloc
);
5086 /* Line 1455 of yacc.c */
5087 #line 1498 "glsl_parser.ypp"
5088 { (yyval
.node
) = (yyvsp
[(1) - (1)].function_definition
); ;}
5093 /* Line 1455 of yacc.c */
5094 #line 1499 "glsl_parser.ypp"
5095 { (yyval
.node
) = (yyvsp
[(1) - (1)].node
); ;}
5100 /* Line 1455 of yacc.c */
5101 #line 1504 "glsl_parser.ypp"
5104 (yyval
.function_definition
) = new(ctx
) ast_function_definition();
5105 (yyval
.function_definition
)->set_location(yylloc
);
5106 (yyval
.function_definition
)->prototype
= (yyvsp
[(1) - (2)].function
);
5107 (yyval
.function_definition
)->body
= (yyvsp
[(2) - (2)].compound_statement
);
5113 /* Line 1455 of yacc.c */
5114 #line 5115 "glsl_parser.cpp"
5117 YY_SYMBOL_PRINT ("-> $$ =", yyr1
[yyn
], &yyval
, &yyloc
);
5121 YY_STACK_PRINT (yyss
, yyssp
);
5126 /* Now `shift' the result of the reduction. Determine what state
5127 that goes to, based on the state we popped back to and the rule
5128 number reduced by. */
5132 yystate
= yypgoto
[yyn
- YYNTOKENS
] + *yyssp
;
5133 if (0 <= yystate
&& yystate
<= YYLAST
&& yycheck
[yystate
] == *yyssp
)
5134 yystate
= yytable
[yystate
];
5136 yystate
= yydefgoto
[yyn
- YYNTOKENS
];
5141 /*------------------------------------.
5142 | yyerrlab -- here on detecting error |
5143 `------------------------------------*/
5145 /* If not already recovering from an error, report this error. */
5149 #if ! YYERROR_VERBOSE
5150 yyerror (&yylloc
, state
, YY_("syntax error"));
5153 YYSIZE_T yysize
= yysyntax_error (0, yystate
, yychar
);
5154 if (yymsg_alloc
< yysize
&& yymsg_alloc
< YYSTACK_ALLOC_MAXIMUM
)
5156 YYSIZE_T yyalloc
= 2 * yysize
;
5157 if (! (yysize
<= yyalloc
&& yyalloc
<= YYSTACK_ALLOC_MAXIMUM
))
5158 yyalloc
= YYSTACK_ALLOC_MAXIMUM
;
5159 if (yymsg
!= yymsgbuf
)
5160 YYSTACK_FREE (yymsg
);
5161 yymsg
= (char *) YYSTACK_ALLOC (yyalloc
);
5163 yymsg_alloc
= yyalloc
;
5167 yymsg_alloc
= sizeof yymsgbuf
;
5171 if (0 < yysize
&& yysize
<= yymsg_alloc
)
5173 (void) yysyntax_error (yymsg
, yystate
, yychar
);
5174 yyerror (&yylloc
, state
, yymsg
);
5178 yyerror (&yylloc
, state
, YY_("syntax error"));
5180 goto yyexhaustedlab
;
5186 yyerror_range
[0] = yylloc
;
5188 if (yyerrstatus
== 3)
5190 /* If just tried and failed to reuse lookahead token after an
5191 error, discard it. */
5193 if (yychar
<= YYEOF
)
5195 /* Return failure if at end of input. */
5196 if (yychar
== YYEOF
)
5201 yydestruct ("Error: discarding",
5202 yytoken
, &yylval
, &yylloc
, state
);
5207 /* Else will try to reuse lookahead token after shifting the error
5212 /*---------------------------------------------------.
5213 | yyerrorlab -- error raised explicitly by YYERROR. |
5214 `---------------------------------------------------*/
5217 /* Pacify compilers like GCC when the user code never invokes
5218 YYERROR and the label yyerrorlab therefore never appears in user
5220 if (/*CONSTCOND*/ 0)
5223 yyerror_range
[0] = yylsp
[1-yylen
];
5224 /* Do not reclaim the symbols of the rule which action triggered
5228 YY_STACK_PRINT (yyss
, yyssp
);
5233 /*-------------------------------------------------------------.
5234 | yyerrlab1 -- common code for both syntax error and YYERROR. |
5235 `-------------------------------------------------------------*/
5237 yyerrstatus
= 3; /* Each real token shifted decrements this. */
5241 yyn
= yypact
[yystate
];
5242 if (yyn
!= YYPACT_NINF
)
5245 if (0 <= yyn
&& yyn
<= YYLAST
&& yycheck
[yyn
] == YYTERROR
)
5253 /* Pop the current state because it cannot handle the error token. */
5257 yyerror_range
[0] = *yylsp
;
5258 yydestruct ("Error: popping",
5259 yystos
[yystate
], yyvsp
, yylsp
, state
);
5262 YY_STACK_PRINT (yyss
, yyssp
);
5267 yyerror_range
[1] = yylloc
;
5268 /* Using YYLLOC is tempting, but would change the location of
5269 the lookahead. YYLOC is available though. */
5270 YYLLOC_DEFAULT (yyloc
, (yyerror_range
- 1), 2);
5273 /* Shift the error token. */
5274 YY_SYMBOL_PRINT ("Shifting", yystos
[yyn
], yyvsp
, yylsp
);
5280 /*-------------------------------------.
5281 | yyacceptlab -- YYACCEPT comes here. |
5282 `-------------------------------------*/
5287 /*-----------------------------------.
5288 | yyabortlab -- YYABORT comes here. |
5289 `-----------------------------------*/
5294 #if !defined(yyoverflow) || YYERROR_VERBOSE
5295 /*-------------------------------------------------.
5296 | yyexhaustedlab -- memory exhaustion comes here. |
5297 `-------------------------------------------------*/
5299 yyerror (&yylloc
, state
, YY_("memory exhausted"));
5305 if (yychar
!= YYEMPTY
)
5306 yydestruct ("Cleanup: discarding lookahead",
5307 yytoken
, &yylval
, &yylloc
, state
);
5308 /* Do not reclaim the symbols of the rule which action triggered
5309 this YYABORT or YYACCEPT. */
5311 YY_STACK_PRINT (yyss
, yyssp
);
5312 while (yyssp
!= yyss
)
5314 yydestruct ("Cleanup: popping",
5315 yystos
[*yyssp
], yyvsp
, yylsp
, state
);
5320 YYSTACK_FREE (yyss
);
5323 if (yymsg
!= yymsgbuf
)
5324 YYSTACK_FREE (yymsg
);
5326 /* Make sure YYID is used. */
5327 return YYID (yyresult
);