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,
336 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
337 typedef union YYSTYPE
340 /* Line 214 of yacc.c */
341 #line 53 "glsl_parser.ypp"
348 struct ast_type_qualifier q
;
352 struct ast_node
*node
;
353 struct ast_type_specifier
*type_specifier
;
354 struct ast_fully_specified_type
*fully_specified_type
;
355 struct ast_function
*function
;
356 struct ast_parameter_declarator
*parameter_declarator
;
357 struct ast_function_definition
*function_definition
;
358 struct ast_compound_statement
*compound_statement
;
359 struct ast_expression
*expression
;
360 struct ast_declarator_list
*declarator_list
;
361 struct ast_struct_specifier
*struct_specifier
;
362 struct ast_declaration
*declaration
;
365 struct ast_node
*cond
;
366 struct ast_expression
*rest
;
367 } for_rest_statement
;
371 /* Line 214 of yacc.c */
372 #line 373 "glsl_parser.cpp"
374 # define YYSTYPE_IS_TRIVIAL 1
375 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
376 # define YYSTYPE_IS_DECLARED 1
379 #if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED
380 typedef struct YYLTYPE
387 # define yyltype YYLTYPE /* obsolescent; will be withdrawn */
388 # define YYLTYPE_IS_DECLARED 1
389 # define YYLTYPE_IS_TRIVIAL 1
393 /* Copy the second part of user declarations. */
396 /* Line 264 of yacc.c */
397 #line 398 "glsl_parser.cpp"
404 typedef YYTYPE_UINT8 yytype_uint8
;
406 typedef unsigned char yytype_uint8
;
410 typedef YYTYPE_INT8 yytype_int8
;
411 #elif (defined __STDC__ || defined __C99__FUNC__ \
412 || defined __cplusplus || defined _MSC_VER)
413 typedef signed char yytype_int8
;
415 typedef short int yytype_int8
;
419 typedef YYTYPE_UINT16 yytype_uint16
;
421 typedef unsigned short int yytype_uint16
;
425 typedef YYTYPE_INT16 yytype_int16
;
427 typedef short int yytype_int16
;
431 # ifdef __SIZE_TYPE__
432 # define YYSIZE_T __SIZE_TYPE__
433 # elif defined size_t
434 # define YYSIZE_T size_t
435 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
436 || defined __cplusplus || defined _MSC_VER)
437 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
438 # define YYSIZE_T size_t
440 # define YYSIZE_T unsigned int
444 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
449 # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
450 # define YY_(msgid) dgettext ("bison-runtime", msgid)
454 # define YY_(msgid) msgid
458 /* Suppress unused-variable warnings by "using" E. */
459 #if ! defined lint || defined __GNUC__
460 # define YYUSE(e) ((void) (e))
462 # define YYUSE(e) /* empty */
465 /* Identity function, used to suppress warnings about constant conditions. */
469 #if (defined __STDC__ || defined __C99__FUNC__ \
470 || defined __cplusplus || defined _MSC_VER)
483 #if ! defined yyoverflow || YYERROR_VERBOSE
485 /* The parser invokes alloca or malloc; define the necessary symbols. */
487 # ifdef YYSTACK_USE_ALLOCA
488 # if YYSTACK_USE_ALLOCA
490 # define YYSTACK_ALLOC __builtin_alloca
491 # elif defined __BUILTIN_VA_ARG_INCR
492 # include <alloca.h> /* INFRINGES ON USER NAME SPACE */
494 # define YYSTACK_ALLOC __alloca
495 # elif defined _MSC_VER
496 # include <malloc.h> /* INFRINGES ON USER NAME SPACE */
497 # define alloca _alloca
499 # define YYSTACK_ALLOC alloca
500 # if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
501 || defined __cplusplus || defined _MSC_VER)
502 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
511 # ifdef YYSTACK_ALLOC
512 /* Pacify GCC's `empty if-body' warning. */
513 # define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
514 # ifndef YYSTACK_ALLOC_MAXIMUM
515 /* The OS might guarantee only one guard page at the bottom of the stack,
516 and a page size can be as small as 4096 bytes. So we cannot safely
517 invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
518 to allow for a few compiler-allocated temporary stack slots. */
519 # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
522 # define YYSTACK_ALLOC YYMALLOC
523 # define YYSTACK_FREE YYFREE
524 # ifndef YYSTACK_ALLOC_MAXIMUM
525 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
527 # if (defined __cplusplus && ! defined _STDLIB_H \
528 && ! ((defined YYMALLOC || defined malloc) \
529 && (defined YYFREE || defined free)))
530 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
536 # define YYMALLOC malloc
537 # if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
538 || defined __cplusplus || defined _MSC_VER)
539 void *malloc (YYSIZE_T
); /* INFRINGES ON USER NAME SPACE */
544 # if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
545 || defined __cplusplus || defined _MSC_VER)
546 void free (void *); /* INFRINGES ON USER NAME SPACE */
550 #endif /* ! defined yyoverflow || YYERROR_VERBOSE */
553 #if (! defined yyoverflow \
554 && (! defined __cplusplus \
555 || (defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL \
556 && defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
558 /* A type that is properly aligned for any stack member. */
561 yytype_int16 yyss_alloc
;
566 /* The size of the maximum gap between one aligned stack and the next. */
567 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
569 /* The size of an array large to enough to hold all stacks, each with
571 # define YYSTACK_BYTES(N) \
572 ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \
573 + 2 * YYSTACK_GAP_MAXIMUM)
575 /* Copy COUNT objects from FROM to TO. The source and destination do
578 # if defined __GNUC__ && 1 < __GNUC__
579 # define YYCOPY(To, From, Count) \
580 __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
582 # define YYCOPY(To, From, Count) \
586 for (yyi = 0; yyi < (Count); yyi++) \
587 (To)[yyi] = (From)[yyi]; \
593 /* Relocate STACK from its old location to the new one. The
594 local variables YYSIZE and YYSTACKSIZE give the old and new number of
595 elements in the stack, and YYPTR gives the new location of the
596 stack. Advance YYPTR to a properly aligned location for the next
598 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \
601 YYSIZE_T yynewbytes; \
602 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
603 Stack = &yyptr->Stack_alloc; \
604 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
605 yyptr += yynewbytes / sizeof (*yyptr); \
611 /* YYFINAL -- State number of the termination state. */
613 /* YYLAST -- Last index in YYTABLE. */
616 /* YYNTOKENS -- Number of terminals. */
617 #define YYNTOKENS 214
618 /* YYNNTS -- Number of nonterminals. */
620 /* YYNRULES -- Number of rules. */
622 /* YYNRULES -- Number of states. */
623 #define YYNSTATES 413
625 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
627 #define YYMAXUTOK 444
629 #define YYTRANSLATE(YYX) \
630 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
632 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
633 static const yytype_uint8 yytranslate
[] =
635 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
636 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
637 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
638 2, 2, 2, 198, 2, 2, 2, 202, 205, 2,
639 190, 191, 200, 196, 195, 197, 194, 201, 2, 2,
640 2, 2, 2, 2, 2, 2, 2, 2, 209, 211,
641 203, 210, 204, 208, 2, 2, 2, 2, 2, 2,
642 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
643 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
644 2, 192, 2, 193, 206, 2, 2, 2, 2, 2,
645 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
646 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
647 2, 2, 2, 212, 207, 213, 199, 2, 2, 2,
648 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
649 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
650 2, 2, 2, 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, 1, 2, 3, 4,
661 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
662 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
663 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
664 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
665 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
666 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
667 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
668 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
669 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
670 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
671 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
672 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
673 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
674 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
675 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
676 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
677 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
678 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
679 185, 186, 187, 188, 189
683 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
685 static const yytype_uint16 yyprhs
[] =
687 0, 0, 3, 4, 9, 10, 14, 15, 18, 24,
688 26, 29, 31, 33, 35, 37, 39, 41, 45, 47,
689 52, 54, 58, 61, 64, 66, 68, 70, 74, 77,
690 80, 83, 85, 88, 92, 95, 97, 99, 101, 103,
691 106, 109, 112, 114, 116, 118, 120, 122, 126, 130,
692 134, 136, 140, 144, 146, 150, 154, 156, 160, 164,
693 168, 172, 174, 178, 182, 184, 188, 190, 194, 196,
694 200, 202, 206, 208, 212, 214, 218, 220, 226, 228,
695 232, 234, 236, 238, 240, 242, 244, 246, 248, 250,
696 252, 254, 256, 260, 262, 265, 268, 273, 276, 278,
697 280, 283, 287, 291, 294, 300, 304, 307, 311, 314,
698 315, 317, 319, 321, 323, 325, 329, 335, 342, 350,
699 359, 365, 367, 370, 375, 381, 388, 396, 401, 404,
700 406, 409, 410, 412, 417, 419, 423, 425, 427, 429,
701 431, 433, 435, 438, 441, 443, 445, 448, 451, 454,
702 456, 459, 462, 464, 466, 469, 471, 475, 480, 482,
703 484, 486, 488, 490, 492, 494, 496, 498, 500, 502,
704 504, 506, 508, 510, 512, 514, 516, 518, 520, 522,
705 524, 526, 528, 530, 532, 534, 536, 538, 540, 542,
706 544, 546, 548, 550, 552, 554, 556, 558, 560, 562,
707 564, 566, 568, 570, 572, 574, 576, 578, 580, 582,
708 584, 586, 588, 590, 592, 594, 596, 598, 600, 606,
709 611, 613, 616, 620, 622, 626, 628, 633, 635, 637,
710 639, 641, 643, 645, 647, 649, 651, 653, 655, 657,
711 659, 661, 664, 668, 670, 672, 675, 679, 681, 684,
712 686, 689, 697, 703, 709, 717, 719, 724, 730, 734,
713 737, 743, 751, 758, 760, 762, 764, 765, 768, 772,
714 775, 778, 781, 785, 788, 790, 792
717 /* YYRHS -- A `-1'-separated list of the rules' RHS. */
718 static const yytype_int16 yyrhs
[] =
720 215, 0, -1, -1, 217, 218, 216, 220, -1, -1,
721 112, 81, 117, -1, -1, 218, 219, -1, 113, 79,
722 116, 79, 117, -1, 301, -1, 220, 301, -1, 79,
723 -1, 221, -1, 81, -1, 82, -1, 80, -1, 83,
724 -1, 190, 248, 191, -1, 222, -1, 223, 192, 224,
725 193, -1, 225, -1, 223, 194, 79, -1, 223, 87,
726 -1, 223, 88, -1, 248, -1, 226, -1, 227, -1,
727 223, 194, 227, -1, 229, 191, -1, 228, 191, -1,
728 230, 77, -1, 230, -1, 230, 246, -1, 229, 195,
729 246, -1, 231, 190, -1, 270, -1, 79, -1, 84,
730 -1, 223, -1, 87, 232, -1, 88, 232, -1, 233,
731 232, -1, 196, -1, 197, -1, 198, -1, 199, -1,
732 232, -1, 234, 200, 232, -1, 234, 201, 232, -1,
733 234, 202, 232, -1, 234, -1, 235, 196, 234, -1,
734 235, 197, 234, -1, 235, -1, 236, 85, 235, -1,
735 236, 86, 235, -1, 236, -1, 237, 203, 236, -1,
736 237, 204, 236, -1, 237, 89, 236, -1, 237, 90,
737 236, -1, 237, -1, 238, 91, 237, -1, 238, 92,
738 237, -1, 238, -1, 239, 205, 238, -1, 239, -1,
739 240, 206, 239, -1, 240, -1, 241, 207, 240, -1,
740 241, -1, 242, 93, 241, -1, 242, -1, 243, 95,
741 242, -1, 243, -1, 244, 94, 243, -1, 244, -1,
742 244, 208, 248, 209, 246, -1, 245, -1, 232, 247,
743 246, -1, 210, -1, 96, -1, 97, -1, 99, -1,
744 98, -1, 105, -1, 100, -1, 101, -1, 102, -1,
745 103, -1, 104, -1, 246, -1, 248, 195, 246, -1,
746 245, -1, 251, 211, -1, 259, 211, -1, 111, 274,
747 271, 211, -1, 252, 191, -1, 254, -1, 253, -1,
748 254, 256, -1, 253, 195, 256, -1, 261, 79, 190,
749 -1, 270, 79, -1, 270, 79, 192, 249, 193, -1,
750 267, 257, 255, -1, 257, 255, -1, 267, 257, 258,
751 -1, 257, 258, -1, -1, 36, -1, 37, -1, 38,
752 -1, 270, -1, 260, -1, 259, 195, 79, -1, 259,
753 195, 79, 192, 193, -1, 259, 195, 79, 192, 249,
754 193, -1, 259, 195, 79, 192, 193, 210, 280, -1,
755 259, 195, 79, 192, 249, 193, 210, 280, -1, 259,
756 195, 79, 210, 280, -1, 261, -1, 261, 79, -1,
757 261, 79, 192, 193, -1, 261, 79, 192, 249, 193,
758 -1, 261, 79, 192, 193, 210, 280, -1, 261, 79,
759 192, 249, 193, 210, 280, -1, 261, 79, 210, 280,
760 -1, 106, 79, -1, 270, -1, 268, 270, -1, -1,
761 263, -1, 120, 190, 264, 191, -1, 265, -1, 264,
762 195, 265, -1, 79, -1, 43, -1, 42, -1, 41,
763 -1, 4, -1, 269, -1, 266, 268, -1, 106, 268,
764 -1, 4, -1, 3, -1, 262, 40, -1, 35, 40,
765 -1, 262, 36, -1, 37, -1, 35, 36, -1, 35,
766 37, -1, 39, -1, 271, -1, 274, 271, -1, 272,
767 -1, 272, 192, 193, -1, 272, 192, 249, 193, -1,
768 273, -1, 275, -1, 79, -1, 77, -1, 6, -1,
769 7, -1, 8, -1, 5, -1, 29, -1, 30, -1,
770 31, -1, 20, -1, 21, -1, 22, -1, 23, -1,
771 24, -1, 25, -1, 26, -1, 27, -1, 28, -1,
772 32, -1, 33, -1, 34, -1, 44, -1, 45, -1,
773 46, -1, 47, -1, 48, -1, 49, -1, 50, -1,
774 51, -1, 52, -1, 53, -1, 54, -1, 154, -1,
775 55, -1, 56, -1, 57, -1, 58, -1, 156, -1,
776 59, -1, 60, -1, 61, -1, 62, -1, 63, -1,
777 64, -1, 65, -1, 66, -1, 67, -1, 68, -1,
778 69, -1, 70, -1, 71, -1, 72, -1, 73, -1,
779 74, -1, 75, -1, 109, -1, 108, -1, 107, -1,
780 76, 79, 212, 276, 213, -1, 76, 212, 276, 213,
781 -1, 277, -1, 276, 277, -1, 270, 278, 211, -1,
782 279, -1, 278, 195, 279, -1, 79, -1, 79, 192,
783 249, 193, -1, 246, -1, 250, -1, 283, -1, 284,
784 -1, 286, -1, 285, -1, 292, -1, 281, -1, 290,
785 -1, 291, -1, 294, -1, 295, -1, 296, -1, 300,
786 -1, 212, 213, -1, 212, 289, 213, -1, 288, -1,
787 285, -1, 212, 213, -1, 212, 289, 213, -1, 282,
788 -1, 289, 282, -1, 211, -1, 248, 211, -1, 14,
789 190, 248, 191, 283, 12, 283, -1, 14, 190, 248,
790 191, 283, -1, 14, 190, 248, 191, 284, -1, 14,
791 190, 248, 191, 283, 12, 284, -1, 248, -1, 261,
792 79, 210, 280, -1, 17, 190, 248, 191, 286, -1,
793 18, 248, 209, -1, 19, 209, -1, 78, 190, 293,
794 191, 287, -1, 11, 282, 78, 190, 248, 191, 211,
795 -1, 13, 190, 297, 299, 191, 287, -1, 290, -1,
796 281, -1, 293, -1, -1, 298, 211, -1, 298, 211,
797 248, -1, 10, 211, -1, 9, 211, -1, 16, 211,
798 -1, 16, 248, 211, -1, 15, 211, -1, 302, -1,
799 250, -1, 251, 288, -1
802 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
803 static const yytype_uint16 yyrline
[] =
805 0, 208, 208, 207, 216, 219, 236, 238, 242, 251,
806 259, 270, 274, 281, 288, 295, 302, 309, 316, 317,
807 323, 327, 334, 340, 349, 353, 357, 358, 367, 368,
808 372, 373, 377, 383, 395, 399, 405, 412, 423, 424,
809 430, 436, 446, 447, 448, 449, 453, 454, 460, 466,
810 475, 476, 482, 491, 492, 498, 507, 508, 514, 520,
811 526, 535, 536, 542, 551, 552, 561, 562, 571, 572,
812 581, 582, 591, 592, 601, 602, 611, 612, 621, 622,
813 631, 632, 633, 634, 635, 636, 637, 638, 639, 640,
814 641, 645, 649, 665, 669, 673, 677, 691, 695, 696,
815 700, 705, 713, 724, 734, 749, 756, 761, 772, 784,
816 785, 786, 787, 791, 795, 796, 805, 814, 823, 832,
817 841, 854, 865, 874, 883, 892, 901, 910, 919, 933,
818 940, 951, 952, 956, 963, 964, 971, 1005, 1006, 1007,
819 1011, 1015, 1016, 1020, 1028, 1029, 1030, 1031, 1032, 1033,
820 1034, 1035, 1036, 1040, 1041, 1049, 1050, 1056, 1065, 1071,
821 1077, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094,
822 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104,
823 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114,
824 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124,
825 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134,
826 1135, 1136, 1137, 1138, 1139, 1143, 1154, 1165, 1179, 1185,
827 1194, 1199, 1207, 1222, 1227, 1235, 1241, 1250, 1254, 1260,
828 1261, 1265, 1266, 1270, 1274, 1275, 1276, 1277, 1278, 1279,
829 1280, 1284, 1290, 1299, 1300, 1304, 1310, 1319, 1329, 1341,
830 1347, 1356, 1365, 1371, 1377, 1386, 1390, 1404, 1408, 1409,
831 1413, 1420, 1427, 1437, 1438, 1442, 1444, 1450, 1455, 1464,
832 1470, 1476, 1482, 1488, 1497, 1498, 1502
836 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
837 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
838 First, the terminals, then, starting at YYNTOKENS, nonterminals. */
839 static const char *const yytname
[] =
841 "$end", "error", "$undefined", "ATTRIBUTE", "CONST_TOK", "BOOL",
842 "FLOAT", "INT", "UINT", "BREAK", "CONTINUE", "DO", "ELSE", "FOR", "IF",
843 "DISCARD", "RETURN", "SWITCH", "CASE", "DEFAULT", "BVEC2", "BVEC3",
844 "BVEC4", "IVEC2", "IVEC3", "IVEC4", "UVEC2", "UVEC3", "UVEC4", "VEC2",
845 "VEC3", "VEC4", "MAT2", "MAT3", "MAT4", "CENTROID", "IN", "OUT", "INOUT",
846 "UNIFORM", "VARYING", "NOPERSPECTIVE", "FLAT", "SMOOTH", "MAT2X2",
847 "MAT2X3", "MAT2X4", "MAT3X2", "MAT3X3", "MAT3X4", "MAT4X2", "MAT4X3",
848 "MAT4X4", "SAMPLER1D", "SAMPLER2D", "SAMPLER3D", "SAMPLERCUBE",
849 "SAMPLER1DSHADOW", "SAMPLER2DSHADOW", "SAMPLERCUBESHADOW",
850 "SAMPLER1DARRAY", "SAMPLER2DARRAY", "SAMPLER1DARRAYSHADOW",
851 "SAMPLER2DARRAYSHADOW", "ISAMPLER1D", "ISAMPLER2D", "ISAMPLER3D",
852 "ISAMPLERCUBE", "ISAMPLER1DARRAY", "ISAMPLER2DARRAY", "USAMPLER1D",
853 "USAMPLER2D", "USAMPLER3D", "USAMPLERCUBE", "USAMPLER1DARRAY",
854 "USAMPLER2DARRAY", "STRUCT", "VOID", "WHILE", "IDENTIFIER",
855 "FLOATCONSTANT", "INTCONSTANT", "UINTCONSTANT", "BOOLCONSTANT",
856 "FIELD_SELECTION", "LEFT_OP", "RIGHT_OP", "INC_OP", "DEC_OP", "LE_OP",
857 "GE_OP", "EQ_OP", "NE_OP", "AND_OP", "OR_OP", "XOR_OP", "MUL_ASSIGN",
858 "DIV_ASSIGN", "ADD_ASSIGN", "MOD_ASSIGN", "LEFT_ASSIGN", "RIGHT_ASSIGN",
859 "AND_ASSIGN", "XOR_ASSIGN", "OR_ASSIGN", "SUB_ASSIGN", "INVARIANT",
860 "LOWP", "MEDIUMP", "HIGHP", "SUPERP", "PRECISION", "VERSION",
861 "EXTENSION", "LINE", "PRAGMA", "COLON", "EOL", "INTERFACE", "OUTPUT",
862 "LAYOUT_TOK", "ASM", "CLASS", "UNION", "ENUM", "TYPEDEF", "TEMPLATE",
863 "THIS", "PACKED", "GOTO", "INLINE_TOK", "NOINLINE", "VOLATILE",
864 "PUBLIC_TOK", "STATIC", "EXTERN", "EXTERNAL", "LONG", "SHORT", "DOUBLE",
865 "HALF", "FIXED", "UNSIGNED", "INPUT", "OUPTUT", "HVEC2", "HVEC3",
866 "HVEC4", "DVEC2", "DVEC3", "DVEC4", "FVEC2", "FVEC3", "FVEC4",
867 "SAMPLER2DRECT", "SAMPLER3DRECT", "SAMPLER2DRECTSHADOW", "SIZEOF",
868 "CAST", "NAMESPACE", "USING", "COMMON", "PARTITION", "ACTIVE",
869 "SAMPLERBUFFER", "FILTER", "IMAGE1D", "IMAGE2D", "IMAGE3D", "IMAGECUBE",
870 "IMAGE1DARRAY", "IMAGE2DARRAY", "IIMAGE1D", "IIMAGE2D", "IIMAGE3D",
871 "IIMAGECUBE", "IIMAGE1DARRAY", "IIMAGE2DARRAY", "UIMAGE1D", "UIMAGE2D",
872 "UIMAGE3D", "UIMAGECUBE", "UIMAGE1DARRAY", "UIMAGE2DARRAY",
873 "IMAGE1DSHADOW", "IMAGE2DSHADOW", "IMAGEBUFFER", "IIMAGEBUFFER",
874 "UIMAGEBUFFER", "ROW_MAJOR", "'('", "')'", "'['", "']'", "'.'", "','",
875 "'+'", "'-'", "'!'", "'~'", "'*'", "'/'", "'%'", "'<'", "'>'", "'&'",
876 "'^'", "'|'", "'?'", "':'", "'='", "';'", "'{'", "'}'", "$accept",
877 "translation_unit", "$@1", "version_statement",
878 "extension_statement_list", "extension_statement",
879 "external_declaration_list", "variable_identifier", "primary_expression",
880 "postfix_expression", "integer_expression", "function_call",
881 "function_call_or_method", "function_call_generic",
882 "function_call_header_no_parameters",
883 "function_call_header_with_parameters", "function_call_header",
884 "function_identifier", "unary_expression", "unary_operator",
885 "multiplicative_expression", "additive_expression", "shift_expression",
886 "relational_expression", "equality_expression", "and_expression",
887 "exclusive_or_expression", "inclusive_or_expression",
888 "logical_and_expression", "logical_xor_expression",
889 "logical_or_expression", "conditional_expression",
890 "assignment_expression", "assignment_operator", "expression",
891 "constant_expression", "declaration", "function_prototype",
892 "function_declarator", "function_header_with_parameters",
893 "function_header", "parameter_declarator", "parameter_declaration",
894 "parameter_qualifier", "parameter_type_specifier",
895 "init_declarator_list", "single_declaration", "fully_specified_type",
896 "opt_layout_qualifier", "layout_qualifier", "layout_qualifier_id_list",
897 "layout_qualifier_id", "interpolation_qualifier",
898 "parameter_type_qualifier", "type_qualifier", "storage_qualifier",
899 "type_specifier", "type_specifier_no_prec", "type_specifier_nonarray",
900 "basic_type_specifier_nonarray", "precision_qualifier",
901 "struct_specifier", "struct_declaration_list", "struct_declaration",
902 "struct_declarator_list", "struct_declarator", "initializer",
903 "declaration_statement", "statement", "statement_matched",
904 "statement_unmatched", "simple_statement", "compound_statement",
905 "statement_no_new_scope", "compound_statement_no_new_scope",
906 "statement_list", "expression_statement", "selection_statement_matched",
907 "selection_statement_unmatched", "condition", "switch_statement",
908 "case_label", "iteration_statement", "for_init_statement",
909 "conditionopt", "for_rest_statement", "jump_statement",
910 "external_declaration", "function_definition", 0
915 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
917 static const yytype_uint16 yytoknum
[] =
919 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
920 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
921 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
922 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
923 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
924 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
925 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
926 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
927 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
928 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
929 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
930 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
931 375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
932 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
933 395, 396, 397, 398, 399, 400, 401, 402, 403, 404,
934 405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
935 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
936 425, 426, 427, 428, 429, 430, 431, 432, 433, 434,
937 435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
938 40, 41, 91, 93, 46, 44, 43, 45, 33, 126,
939 42, 47, 37, 60, 62, 38, 94, 124, 63, 58,
944 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
945 static const yytype_uint16 yyr1
[] =
947 0, 214, 216, 215, 217, 217, 218, 218, 219, 220,
948 220, 221, 222, 222, 222, 222, 222, 222, 223, 223,
949 223, 223, 223, 223, 224, 225, 226, 226, 227, 227,
950 228, 228, 229, 229, 230, 231, 231, 231, 232, 232,
951 232, 232, 233, 233, 233, 233, 234, 234, 234, 234,
952 235, 235, 235, 236, 236, 236, 237, 237, 237, 237,
953 237, 238, 238, 238, 239, 239, 240, 240, 241, 241,
954 242, 242, 243, 243, 244, 244, 245, 245, 246, 246,
955 247, 247, 247, 247, 247, 247, 247, 247, 247, 247,
956 247, 248, 248, 249, 250, 250, 250, 251, 252, 252,
957 253, 253, 254, 255, 255, 256, 256, 256, 256, 257,
958 257, 257, 257, 258, 259, 259, 259, 259, 259, 259,
959 259, 260, 260, 260, 260, 260, 260, 260, 260, 261,
960 261, 262, 262, 263, 264, 264, 265, 266, 266, 266,
961 267, 268, 268, 268, 269, 269, 269, 269, 269, 269,
962 269, 269, 269, 270, 270, 271, 271, 271, 272, 272,
963 272, 273, 273, 273, 273, 273, 273, 273, 273, 273,
964 273, 273, 273, 273, 273, 273, 273, 273, 273, 273,
965 273, 273, 273, 273, 273, 273, 273, 273, 273, 273,
966 273, 273, 273, 273, 273, 273, 273, 273, 273, 273,
967 273, 273, 273, 273, 273, 273, 273, 273, 273, 273,
968 273, 273, 273, 273, 273, 274, 274, 274, 275, 275,
969 276, 276, 277, 278, 278, 279, 279, 280, 281, 282,
970 282, 283, 283, 284, 285, 285, 285, 285, 285, 285,
971 285, 286, 286, 287, 287, 288, 288, 289, 289, 290,
972 290, 291, 292, 292, 292, 293, 293, 294, 295, 295,
973 296, 296, 296, 297, 297, 298, 298, 299, 299, 300,
974 300, 300, 300, 300, 301, 301, 302
977 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
978 static const yytype_uint8 yyr2
[] =
980 0, 2, 0, 4, 0, 3, 0, 2, 5, 1,
981 2, 1, 1, 1, 1, 1, 1, 3, 1, 4,
982 1, 3, 2, 2, 1, 1, 1, 3, 2, 2,
983 2, 1, 2, 3, 2, 1, 1, 1, 1, 2,
984 2, 2, 1, 1, 1, 1, 1, 3, 3, 3,
985 1, 3, 3, 1, 3, 3, 1, 3, 3, 3,
986 3, 1, 3, 3, 1, 3, 1, 3, 1, 3,
987 1, 3, 1, 3, 1, 3, 1, 5, 1, 3,
988 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
989 1, 1, 3, 1, 2, 2, 4, 2, 1, 1,
990 2, 3, 3, 2, 5, 3, 2, 3, 2, 0,
991 1, 1, 1, 1, 1, 3, 5, 6, 7, 8,
992 5, 1, 2, 4, 5, 6, 7, 4, 2, 1,
993 2, 0, 1, 4, 1, 3, 1, 1, 1, 1,
994 1, 1, 2, 2, 1, 1, 2, 2, 2, 1,
995 2, 2, 1, 1, 2, 1, 3, 4, 1, 1,
996 1, 1, 1, 1, 1, 1, 1, 1, 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, 5, 4,
1002 1, 2, 3, 1, 3, 1, 4, 1, 1, 1,
1003 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1004 1, 2, 3, 1, 1, 2, 3, 1, 2, 1,
1005 2, 7, 5, 5, 7, 1, 4, 5, 3, 2,
1006 5, 7, 6, 1, 1, 1, 0, 2, 3, 2,
1010 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
1011 STATE-NUM when YYTABLE doesn't specify something else to do. Zero
1012 means the default is an error. */
1013 static const yytype_uint16 yydefact
[] =
1015 4, 0, 0, 6, 0, 1, 2, 5, 0, 131,
1016 7, 0, 145, 144, 165, 162, 163, 164, 169, 170,
1017 171, 172, 173, 174, 175, 176, 177, 166, 167, 168,
1018 178, 179, 180, 0, 149, 152, 139, 138, 137, 181,
1019 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
1020 193, 194, 195, 196, 198, 199, 200, 201, 202, 203,
1021 204, 205, 206, 207, 208, 209, 210, 211, 212, 213,
1022 214, 0, 161, 160, 131, 217, 216, 215, 0, 0,
1023 192, 197, 131, 275, 0, 0, 99, 109, 0, 114,
1024 121, 0, 132, 131, 0, 141, 129, 153, 155, 158,
1025 0, 159, 9, 274, 0, 150, 151, 147, 0, 0,
1026 128, 131, 143, 0, 0, 10, 94, 131, 276, 97,
1027 109, 140, 110, 111, 112, 100, 0, 109, 0, 95,
1028 122, 148, 146, 142, 130, 0, 154, 0, 0, 0,
1029 0, 220, 0, 136, 0, 134, 0, 0, 131, 0,
1030 0, 0, 0, 0, 0, 0, 0, 11, 15, 13,
1031 14, 16, 37, 0, 0, 0, 42, 43, 44, 45,
1032 249, 131, 245, 12, 18, 38, 20, 25, 26, 0,
1033 0, 31, 0, 46, 0, 50, 53, 56, 61, 64,
1034 66, 68, 70, 72, 74, 76, 78, 91, 0, 228,
1035 0, 129, 234, 247, 229, 230, 232, 231, 131, 235,
1036 236, 233, 237, 238, 239, 240, 101, 106, 108, 113,
1037 0, 115, 102, 0, 0, 156, 46, 93, 0, 35,
1038 8, 0, 225, 0, 223, 219, 221, 96, 133, 0,
1039 270, 269, 0, 131, 0, 273, 271, 0, 0, 0,
1040 259, 131, 39, 40, 0, 241, 131, 22, 23, 0,
1041 0, 29, 28, 0, 161, 32, 34, 81, 82, 84,
1042 83, 86, 87, 88, 89, 90, 85, 80, 0, 41,
1043 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1044 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1045 0, 250, 246, 248, 103, 105, 107, 0, 0, 123,
1046 0, 227, 127, 157, 218, 0, 0, 222, 135, 0,
1047 264, 263, 131, 0, 272, 0, 258, 255, 0, 0,
1048 17, 242, 0, 24, 21, 27, 33, 79, 47, 48,
1049 49, 51, 52, 54, 55, 59, 60, 57, 58, 62,
1050 63, 65, 67, 69, 71, 73, 75, 0, 92, 0,
1051 116, 0, 120, 0, 124, 0, 224, 0, 265, 0,
1052 0, 131, 0, 0, 131, 19, 0, 0, 0, 117,
1053 125, 0, 226, 0, 267, 131, 252, 253, 257, 0,
1054 0, 244, 260, 243, 77, 104, 118, 0, 126, 0,
1055 268, 262, 131, 256, 0, 119, 261, 251, 254, 0,
1059 /* YYDEFGOTO[NTERM-NUM]. */
1060 static const yytype_int16 yydefgoto
[] =
1062 -1, 2, 9, 3, 6, 10, 82, 173, 174, 175,
1063 332, 176, 177, 178, 179, 180, 181, 182, 183, 184,
1064 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
1065 195, 196, 197, 278, 198, 228, 199, 200, 85, 86,
1066 87, 217, 125, 126, 218, 88, 89, 90, 91, 92,
1067 144, 145, 93, 127, 94, 95, 229, 97, 98, 99,
1068 100, 101, 140, 141, 233, 234, 312, 202, 203, 204,
1069 205, 206, 207, 392, 393, 208, 209, 210, 211, 329,
1070 212, 213, 214, 322, 369, 370, 215, 102, 103
1073 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1075 #define YYPACT_NINF -351
1076 static const yytype_int16 yypact
[] =
1078 -85, -52, 36, -351, -60, -351, -30, -351, -31, 3875,
1079 -351, -27, -351, -351, -351, -351, -351, -351, -351, -351,
1080 -351, -351, -351, -351, -351, -351, -351, -351, -351, -351,
1081 -351, -351, -351, 69, -351, -351, -351, -351, -351, -351,
1082 -351, -351, -351, -351, -351, -351, -351, -351, -351, -351,
1083 -351, -351, -351, -351, -351, -351, -351, -351, -351, -351,
1084 -351, -351, -351, -351, -351, -351, -351, -351, -351, -351,
1085 -351, -78, -351, -351, 8, -351, -351, -351, 50, -83,
1086 -351, -351, 3757, -351, -63, 4, -44, 3, -169, -351,
1087 82, -5, -351, 166, 4104, -351, -351, -351, 14, -351,
1088 4217, -351, -351, -351, 135, -351, -351, -351, -12, 4104,
1089 -351, 166, -351, 4217, 142, -351, -351, 401, -351, -351,
1090 18, -351, -351, -351, -351, -351, 4104, 127, 144, -351,
1091 -112, -351, -351, -351, -351, 2857, -351, 107, 4104, 146,
1092 2254, -351, 20, -351, -99, -351, 21, 25, 1245, 39,
1093 47, 27, 2480, 49, 3397, 31, 53, -69, -351, -351,
1094 -351, -351, -351, 3397, 3397, 3397, -351, -351, -351, -351,
1095 -351, 612, -351, -351, -351, -68, -351, -351, -351, 54,
1096 -59, 3577, 56, -36, 3397, -34, -25, 112, -81, 121,
1097 45, 38, 44, 159, 158, -88, -351, -351, -167, -351,
1098 46, 66, -351, -351, -351, -351, -351, -351, 823, -351,
1099 -351, -351, -351, -351, -351, -351, -351, -351, -351, 179,
1100 4104, -178, -351, 3037, 3397, -351, -351, -351, 67, -351,
1101 -351, 2367, 70, -121, -351, -351, -351, -351, -351, 142,
1102 -351, -351, 181, 1862, 3397, -351, -351, -114, 3397, -172,
1103 -351, 2677, -351, -351, -58, -351, 1034, -351, -351, 3397,
1104 3991, -351, -351, 3397, 72, -351, -351, -351, -351, -351,
1105 -351, -351, -351, -351, -351, -351, -351, -351, 3397, -351,
1106 3397, 3397, 3397, 3397, 3397, 3397, 3397, 3397, 3397, 3397,
1107 3397, 3397, 3397, 3397, 3397, 3397, 3397, 3397, 3397, 3397,
1108 3397, -351, -351, -351, 73, -351, -351, 3217, 3397, 51,
1109 71, -351, -351, -351, -351, 3397, 146, -351, -351, 76,
1110 -351, -351, 2059, -51, -351, -50, -351, 74, 188, 77,
1111 -351, -351, 78, 74, 80, -351, -351, -351, -351, -351,
1112 -351, -34, -34, -25, -25, 112, 112, 112, 112, -81,
1113 -81, 121, 45, 38, 44, 159, 158, -125, -351, 3397,
1114 63, 81, -351, 3397, 65, 83, -351, 3397, -351, 68,
1115 86, 1245, 75, 79, 1455, -351, 3397, 85, 3397, 84,
1116 -351, 3397, -351, -49, 3397, 1455, 268, -351, -351, 3397,
1117 91, -351, -351, -351, -351, -351, -351, 3397, -351, 87,
1118 74, -351, 1245, -351, 3397, -351, -351, -351, -351, -48,
1122 /* YYPGOTO[NTERM-NUM]. */
1123 static const yytype_int16 yypgoto
[] =
1125 -351, -351, -351, -351, -351, -351, -351, -351, -351, -351,
1126 -351, -351, -351, 23, -351, -351, -351, -351, -105, -351,
1127 -67, -66, -134, -65, -8, -10, -7, -6, -4, -3,
1128 -351, -111, -148, -351, -149, -221, 6, 9, -351, -351,
1129 -351, 88, 171, 165, 89, -351, -351, -247, -351, -351,
1130 -351, 57, -351, -351, -40, -351, -9, -75, -351, -351,
1131 219, -351, 161, -127, -351, -16, -262, 58, -131, -299,
1132 -350, -292, -70, -82, 220, 134, 64, -351, -351, -11,
1133 -351, -351, -351, -351, -351, -351, -351, 224, -351
1136 /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
1137 positive, shift that token. If negative, reduce the rule which
1138 number is the opposite. If zero, do what YYDEFACT says.
1139 If YYTABLE_NINF, syntax error. */
1140 #define YYTABLE_NINF -267
1141 static const yytype_int16 yytable
[] =
1143 96, 108, 310, 247, 328, 249, 298, 121, 287, 288,
1144 -160, 12, 13, 236, 307, 83, 254, 242, 84, 257,
1145 258, 387, 121, 300, 227, 136, 128, 1, 300, 4,
1146 226, 131, 308, 265, 112, 132, 5, 326, 142, 122,
1147 123, 124, 129, 33, 301, 34, 362, 35, 11, 36,
1148 37, 38, 408, 133, 122, 123, 124, 7, 252, 253,
1149 267, 268, 269, 270, 271, 272, 273, 274, 275, 276,
1150 300, 112, 386, 96, 316, 328, 311, 303, 222, 279,
1151 223, 300, 391, 8, 376, 134, 361, 110, 83, 104,
1152 317, 84, 238, 391, 365, 323, 239, 324, 224, 325,
1153 139, 380, 327, 407, 236, 105, 106, 114, 201, 107,
1154 333, 411, 227, 407, 111, 336, 396, 219, 226, 398,
1155 299, -36, 289, 290, 259, 303, 260, 403, 79, 139,
1156 337, 139, 262, 330, 109, 405, 263, 300, 377, 201,
1157 371, 372, 399, 410, 300, 300, 300, 300, 116, 117,
1158 357, 120, 358, 345, 346, 347, 348, 75, 76, 77,
1159 311, 130, 201, 122, 123, 124, 280, 281, 282, 12,
1160 13, 283, 284, 327, 277, 338, 339, 340, 226, 226,
1161 226, 226, 226, 226, 226, 226, 226, 226, 226, 226,
1162 226, 226, 226, 226, -98, 119, 227, 285, 286, 201,
1163 138, 33, 226, 34, 227, 35, 135, 36, 37, 38,
1164 226, 219, 291, 292, 137, 311, 341, 342, 383, 343,
1165 344, 143, 139, 221, 230, 232, 349, 350, 394, 243,
1166 311, 237, 240, 311, 201, 400, 241, 244, 245, 248,
1167 250, 311, 201, 251, 294, 261, 266, 201, 227, 311,
1168 293, 295, 296, 297, 226, 409, -35, 116, 304, 319,
1169 313, 363, 315, -30, 364, 359, 367, 373, 374, 300,
1170 -36, 375, 111, 378, 379, 381, 382, 385, 395, 384,
1171 402, 404, 412, 335, 352, 351, 79, 171, 353, 389,
1172 354, 216, 220, 355, 397, 356, 318, 113, 406, 231,
1173 366, 320, 388, 401, 118, 256, 115, 321, 305, 306,
1174 0, 368, 0, 201, 0, 0, 0, 0, 0, 0,
1175 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1176 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1177 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1178 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1179 0, 0, 201, 0, 0, 201, 0, 0, 0, 0,
1180 0, 0, 0, 0, 0, 0, 201, 0, 0, 0,
1181 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1182 0, 0, 0, 201, 0, 0, 0, 0, 0, 0,
1183 0, 201, 0, 201, 12, 13, 14, 15, 16, 17,
1184 146, 147, 148, 0, 149, 150, 151, 152, 153, 154,
1185 155, 18, 19, 20, 21, 22, 23, 24, 25, 26,
1186 27, 28, 29, 30, 31, 32, 33, 0, 34, 0,
1187 35, 0, 36, 37, 38, 39, 40, 41, 42, 43,
1188 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1189 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1190 64, 65, 66, 67, 68, 69, 70, 71, 72, 156,
1191 157, 158, 159, 160, 161, 162, 0, 0, 163, 164,
1192 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1193 0, 0, 0, 0, 0, 0, 0, 74, 75, 76,
1194 77, 0, 78, 0, 0, 0, 0, 0, 0, 0,
1195 0, 79, 0, 0, 0, 0, 0, 0, 0, 0,
1196 0, 0, 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, 80, 0, 81, 0, 0,
1199 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1200 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1201 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1202 0, 165, 0, 0, 0, 0, 0, 166, 167, 168,
1203 169, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1204 0, 0, 170, 171, 172, 12, 13, 14, 15, 16,
1205 17, 146, 147, 148, 0, 149, 150, 151, 152, 153,
1206 154, 155, 18, 19, 20, 21, 22, 23, 24, 25,
1207 26, 27, 28, 29, 30, 31, 32, 33, 0, 34,
1208 0, 35, 0, 36, 37, 38, 39, 40, 41, 42,
1209 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1210 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1211 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
1212 156, 157, 158, 159, 160, 161, 162, 0, 0, 163,
1213 164, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1214 0, 0, 0, 0, 0, 0, 0, 0, 74, 75,
1215 76, 77, 0, 78, 0, 0, 0, 0, 0, 0,
1216 0, 0, 79, 0, 0, 0, 0, 0, 0, 0,
1217 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1218 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1219 0, 0, 0, 0, 0, 0, 80, 0, 81, 0,
1220 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1221 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1222 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1223 0, 0, 165, 0, 0, 0, 0, 0, 166, 167,
1224 168, 169, 0, 0, 0, 0, 0, 0, 0, 0,
1225 0, 0, 0, 170, 171, 255, 12, 13, 14, 15,
1226 16, 17, 146, 147, 148, 0, 149, 150, 151, 152,
1227 153, 154, 155, 18, 19, 20, 21, 22, 23, 24,
1228 25, 26, 27, 28, 29, 30, 31, 32, 33, 0,
1229 34, 0, 35, 0, 36, 37, 38, 39, 40, 41,
1230 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1231 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1232 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1233 72, 156, 157, 158, 159, 160, 161, 162, 0, 0,
1234 163, 164, 0, 0, 0, 0, 0, 0, 0, 0,
1235 0, 0, 0, 0, 0, 0, 0, 0, 0, 74,
1236 75, 76, 77, 0, 78, 0, 0, 0, 0, 0,
1237 0, 0, 0, 79, 0, 0, 0, 0, 0, 0,
1238 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1239 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1240 0, 0, 0, 0, 0, 0, 0, 80, 0, 81,
1241 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1242 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1243 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1244 0, 0, 0, 165, 0, 0, 0, 0, 0, 166,
1245 167, 168, 169, 0, 0, 0, 0, 0, 0, 0,
1246 0, 0, 0, 0, 170, 171, 302, 12, 13, 14,
1247 15, 16, 17, 146, 147, 148, 0, 149, 150, 151,
1248 152, 153, 154, 155, 18, 19, 20, 21, 22, 23,
1249 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
1250 0, 34, 0, 35, 0, 36, 37, 38, 39, 40,
1251 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1252 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1253 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1254 71, 72, 156, 157, 158, 159, 160, 161, 162, 0,
1255 0, 163, 164, 0, 0, 0, 0, 0, 0, 0,
1256 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1257 74, 75, 76, 77, 0, 78, 0, 0, 0, 0,
1258 0, 0, 0, 0, 79, 0, 0, 0, 0, 0,
1259 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1260 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1261 0, 0, 0, 0, 0, 0, 0, 0, 80, 0,
1262 81, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1263 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1264 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1265 0, 0, 0, 0, 165, 0, 0, 0, 0, 0,
1266 166, 167, 168, 169, 0, 0, 0, 0, 0, 0,
1267 0, 0, 0, 0, 0, 170, 171, 331, 12, 13,
1268 14, 15, 16, 17, 146, 147, 148, 0, 149, 150,
1269 151, 152, 153, 154, 155, 18, 19, 20, 21, 22,
1270 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
1271 33, 0, 34, 0, 35, 0, 36, 37, 38, 39,
1272 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1273 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1274 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1275 70, 71, 72, 156, 157, 158, 159, 160, 161, 162,
1276 0, 0, 163, 164, 0, 0, 0, 0, 0, 0,
1277 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1278 0, 74, 75, 76, 77, 0, 78, 0, 0, 0,
1279 0, 0, 0, 0, 0, 79, 0, 0, 0, 0,
1280 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1281 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1282 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,
1283 0, 81, 0, 0, 0, 0, 0, 0, 0, 0,
1284 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1285 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1286 0, 0, 0, 0, 0, 165, 0, 0, 0, 0,
1287 0, 166, 167, 168, 169, 0, 0, 0, 0, 0,
1288 0, 0, 0, 0, 0, 0, 170, 171, 12, 13,
1289 14, 15, 16, 17, 146, 147, 148, 0, 149, 390,
1290 151, 152, 153, 154, 155, 18, 19, 20, 21, 22,
1291 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
1292 33, 0, 34, 0, 35, 0, 36, 37, 38, 39,
1293 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1294 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1295 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1296 70, 71, 72, 156, 157, 158, 159, 160, 161, 162,
1297 0, 0, 163, 164, 0, 0, 0, 0, 0, 0,
1298 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1299 0, 74, 75, 76, 77, 0, 78, 0, 0, 0,
1300 0, 0, 0, 0, 0, 79, 0, 0, 0, 0,
1301 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1302 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1303 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,
1304 0, 81, 0, 0, 0, 0, 0, 0, 0, 0,
1305 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1306 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1307 0, 0, 0, 0, 0, 165, 0, 0, 0, 0,
1308 0, 166, 167, 168, 169, 0, 0, 0, 0, 0,
1309 0, 0, 0, 0, 0, 0, 170, 117, 12, 13,
1310 14, 15, 16, 17, 146, 147, 148, 0, 149, 390,
1311 151, 152, 153, 154, 155, 18, 19, 20, 21, 22,
1312 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
1313 33, 0, 34, 0, 35, 0, 36, 37, 38, 39,
1314 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1315 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1316 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1317 70, 71, 72, 156, 157, 158, 159, 160, 161, 162,
1318 0, 0, 163, 164, 0, 0, 0, 0, 0, 0,
1319 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1320 0, 74, 75, 76, 77, 0, 78, 0, 0, 0,
1321 0, 0, 0, 0, 0, 79, 0, 0, 0, 0,
1322 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1323 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1324 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,
1325 0, 81, 0, 0, 0, 0, 0, 0, 0, 0,
1326 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1327 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1328 0, 0, 0, 0, 0, 165, 0, 0, 0, 0,
1329 0, 166, 167, 168, 169, 12, 13, 14, 15, 16,
1330 17, 0, 0, 0, 0, 0, 170, 171, 0, 0,
1331 0, 0, 18, 19, 20, 21, 22, 23, 24, 25,
1332 26, 27, 28, 29, 30, 31, 32, 33, 0, 34,
1333 0, 35, 0, 36, 37, 38, 39, 40, 41, 42,
1334 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1335 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1336 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
1337 0, 157, 158, 159, 160, 161, 162, 0, 0, 163,
1338 164, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1339 0, 0, 0, 0, 0, 0, 0, 0, 74, 75,
1340 76, 77, 0, 78, 0, 0, 0, 0, 0, 0,
1341 0, 0, 79, 0, 0, 0, 0, 0, 0, 0,
1342 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1343 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1344 0, 0, 0, 0, 0, 0, 80, 0, 81, 0,
1345 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1346 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1347 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1348 0, 0, 165, 0, 0, 0, 0, 0, 166, 167,
1349 168, 169, 12, 13, 14, 15, 16, 17, 0, 0,
1350 0, 0, 0, 170, 0, 0, 0, 0, 0, 18,
1351 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1352 29, 30, 31, 32, 33, 0, 34, 0, 35, 0,
1353 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
1354 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1355 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1356 66, 67, 68, 69, 70, 71, 72, 0, 157, 158,
1357 159, 160, 161, 162, 0, 0, 163, 164, 0, 0,
1358 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1359 0, 0, 0, 0, 0, 111, 75, 76, 77, 0,
1360 0, 0, 0, 0, 0, 0, 0, 0, 0, 79,
1361 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1362 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1363 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1364 0, 0, 0, 80, 0, 81, 0, 0, 0, 0,
1365 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1366 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1367 0, 0, 0, 0, 0, 0, 0, 0, 0, 165,
1368 0, 0, 0, 0, 0, 166, 167, 168, 169, 14,
1369 15, 16, 17, 0, 0, 0, 0, 0, 0, 0,
1370 -266, 0, 0, 0, 18, 19, 20, 21, 22, 23,
1371 24, 25, 26, 27, 28, 29, 30, 31, 32, 0,
1372 0, 0, 0, 0, 0, 0, 0, 0, 39, 40,
1373 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1374 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1375 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1376 71, 72, 0, 73, 0, 0, 0, 0, 0, 0,
1377 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1378 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1379 0, 75, 76, 77, 0, 0, 0, 0, 0, 0,
1380 0, 0, 14, 15, 16, 17, 0, 0, 0, 0,
1381 0, 0, 0, 0, 0, 0, 0, 18, 19, 20,
1382 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
1383 31, 32, 0, 0, 0, 0, 0, 0, 80, 0,
1384 81, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1385 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1386 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1387 68, 69, 70, 71, 72, 0, 73, 0, 0, 0,
1388 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1389 0, 0, 0, 0, 0, 0, 0, 235, 0, 0,
1390 0, 0, 0, 0, 75, 76, 77, 0, 0, 0,
1391 0, 0, 0, 0, 0, 14, 15, 16, 17, 0,
1392 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1393 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
1394 28, 29, 30, 31, 32, 0, 0, 0, 0, 0,
1395 0, 80, 0, 81, 39, 40, 41, 42, 43, 44,
1396 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1397 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1398 65, 66, 67, 68, 69, 70, 71, 72, 0, 157,
1399 158, 159, 160, 161, 162, 0, 0, 163, 164, 0,
1400 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1401 314, 0, 0, 0, 0, 0, 0, 75, 76, 77,
1402 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1403 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1404 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1405 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1406 0, 0, 0, 0, 80, 0, 81, 0, 0, 0,
1407 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1408 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1409 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1410 165, 0, 0, 0, 0, 0, 166, 167, 168, 169,
1411 12, 13, 14, 15, 16, 17, 0, 0, 0, 0,
1412 0, 246, 0, 0, 0, 0, 0, 18, 19, 20,
1413 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
1414 31, 32, 33, 0, 34, 0, 35, 0, 36, 37,
1415 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1416 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1417 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1418 68, 69, 70, 71, 72, 0, 157, 158, 159, 160,
1419 161, 162, 0, 0, 163, 164, 0, 0, 0, 0,
1420 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1421 0, 0, 0, 111, 75, 76, 77, 0, 0, 0,
1422 0, 0, 0, 0, 0, 0, 0, 79, 0, 0,
1423 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1424 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1425 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1426 0, 80, 0, 81, 0, 0, 0, 0, 0, 0,
1427 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1428 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1429 0, 0, 14, 15, 16, 17, 0, 165, 0, 0,
1430 0, 0, 0, 166, 167, 168, 169, 18, 19, 20,
1431 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
1432 31, 32, 0, 0, 0, 0, 0, 0, 0, 0,
1433 0, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1434 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1435 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1436 68, 69, 70, 71, 72, 0, 157, 158, 159, 160,
1437 161, 162, 0, 0, 163, 164, 0, 0, 0, 0,
1438 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1439 0, 0, 0, 0, 75, 76, 77, 0, 0, 0,
1440 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1441 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1442 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1443 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1444 0, 80, 0, 81, 0, 0, 0, 0, 0, 0,
1445 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1446 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1447 0, 0, 14, 15, 16, 17, 0, 165, 0, 0,
1448 225, 0, 0, 166, 167, 168, 169, 18, 19, 20,
1449 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
1450 31, 32, 0, 0, 0, 0, 0, 0, 0, 0,
1451 0, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1452 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1453 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1454 68, 69, 70, 71, 72, 0, 157, 158, 159, 160,
1455 161, 162, 0, 0, 163, 164, 0, 0, 0, 0,
1456 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1457 0, 0, 0, 0, 75, 76, 77, 0, 0, 0,
1458 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1459 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 80, 0, 81, 0, 0, 0, 0, 0, 0,
1463 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1464 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1465 0, 0, 14, 15, 16, 17, 0, 165, 0, 0,
1466 309, 0, 0, 166, 167, 168, 169, 18, 19, 20,
1467 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
1468 31, 32, 0, 0, 0, 0, 0, 0, 0, 0,
1469 0, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1470 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1471 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1472 68, 69, 70, 71, 72, 0, 157, 158, 159, 160,
1473 161, 162, 0, 0, 163, 164, 0, 0, 0, 0,
1474 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1475 0, 0, 0, 0, 75, 76, 77, 0, 0, 0,
1476 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1477 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1478 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1479 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1480 0, 80, 0, 81, 0, 0, 0, 0, 0, 0,
1481 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1482 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1483 0, 0, 14, 15, 16, 17, 0, 165, 0, 0,
1484 360, 0, 0, 166, 167, 168, 169, 18, 19, 20,
1485 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
1486 31, 32, 0, 0, 0, 0, 0, 0, 0, 0,
1487 0, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1488 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1489 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1490 68, 69, 70, 71, 72, 0, 157, 158, 159, 160,
1491 161, 162, 0, 0, 163, 164, 0, 0, 0, 0,
1492 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1493 0, 0, 0, 0, 75, 76, 77, 0, 0, 0,
1494 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1495 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1496 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1497 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1498 0, 80, 0, 81, 0, 0, 0, 0, 0, 0,
1499 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1500 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1501 0, 0, 14, 15, 16, 17, 0, 165, 0, 0,
1502 0, 0, 0, 166, 167, 168, 169, 18, 19, 20,
1503 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
1504 31, 32, 0, 0, 0, 0, 0, 0, 0, 0,
1505 0, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1506 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1507 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1508 68, 69, 70, 71, 264, 0, 157, 158, 159, 160,
1509 161, 162, 0, 0, 163, 164, 0, 0, 0, 0,
1510 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1511 0, 0, 0, 0, 75, 76, 77, 0, 0, 0,
1512 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1513 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1514 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1515 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1516 0, 80, 0, 81, 0, 0, 0, 0, 0, 0,
1517 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1518 0, 0, 0, 0, 0, 0, 0, -3, 0, 0,
1519 12, 13, 14, 15, 16, 17, 0, 165, 0, 0,
1520 0, 0, 0, 166, 167, 168, 169, 18, 19, 20,
1521 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
1522 31, 32, 33, 0, 34, 0, 35, 0, 36, 37,
1523 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1524 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1525 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1526 68, 69, 70, 71, 72, 0, 73, 0, 0, 0,
1527 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1528 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1529 0, 0, 0, 74, 75, 76, 77, 0, 78, 0,
1530 0, 0, 0, 0, 0, 0, 0, 79, 12, 13,
1531 14, 15, 16, 17, 0, 0, 0, 0, 0, 0,
1532 0, 0, 0, 0, 0, 18, 19, 20, 21, 22,
1533 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
1534 33, 80, 34, 81, 35, 0, 36, 37, 38, 39,
1535 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1536 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1537 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1538 70, 71, 72, 0, 73, 0, 0, 0, 0, 0,
1539 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1540 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1541 0, 74, 75, 76, 77, 0, 78, 0, 0, 0,
1542 0, 0, 0, 0, 0, 79, 14, 15, 16, 17,
1543 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1544 0, 18, 19, 20, 21, 22, 23, 24, 25, 26,
1545 27, 28, 29, 30, 31, 32, 0, 0, 0, 80,
1546 0, 81, 0, 0, 0, 39, 40, 41, 42, 43,
1547 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1548 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1549 64, 65, 66, 67, 68, 69, 70, 71, 72, 0,
1550 334, 0, 0, 0, 0, 162, 0, 0, 0, 0,
1551 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1552 0, 0, 0, 0, 0, 0, 0, 0, 75, 76,
1553 77, 0, 0, 0, 0, 0, 0, 0, 0, 14,
1554 15, 16, 17, 0, 0, 0, 0, 0, 0, 0,
1555 0, 0, 0, 0, 18, 19, 20, 21, 22, 23,
1556 24, 25, 26, 27, 28, 29, 30, 31, 32, 0,
1557 0, 0, 0, 0, 0, 80, 0, 81, 39, 40,
1558 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1559 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1560 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1561 71, 72, 0, 73, 0, 0, 0, 0, 0, 0,
1562 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1563 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1564 0, 75, 76, 77, 0, 0, 0, 0, 0, 0,
1565 0, 0, 14, 15, 16, 17, 0, 0, 0, 0,
1566 0, 0, 0, 0, 0, 0, 0, 18, 19, 20,
1567 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
1568 31, 32, 0, 0, 0, 0, 0, 0, 80, 0,
1569 81, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1570 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1571 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1572 68, 69, 70, 71, 72, 0, 73, 0, 0, 0,
1573 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1574 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1575 0, 0, 0, 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,
1583 static const yytype_int16 yycheck
[] =
1585 9, 79, 223, 152, 251, 154, 94, 4, 89, 90,
1586 79, 3, 4, 140, 192, 9, 165, 148, 9, 87,
1587 88, 371, 4, 195, 135, 100, 195, 112, 195, 81,
1588 135, 36, 210, 181, 74, 40, 0, 209, 113, 36,
1589 37, 38, 211, 35, 211, 37, 308, 39, 79, 41,
1590 42, 43, 402, 93, 36, 37, 38, 117, 163, 164,
1591 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
1592 195, 111, 371, 82, 195, 322, 224, 208, 190, 184,
1593 192, 195, 374, 113, 209, 94, 307, 79, 82, 116,
1594 211, 82, 191, 385, 315, 244, 195, 211, 210, 248,
1595 109, 363, 251, 402, 231, 36, 37, 190, 117, 40,
1596 259, 410, 223, 412, 106, 263, 378, 126, 223, 381,
1597 208, 190, 203, 204, 192, 256, 194, 389, 120, 138,
1598 278, 140, 191, 191, 212, 397, 195, 195, 359, 148,
1599 191, 191, 191, 191, 195, 195, 195, 195, 211, 212,
1600 299, 195, 300, 287, 288, 289, 290, 107, 108, 109,
1601 308, 79, 171, 36, 37, 38, 200, 201, 202, 3,
1602 4, 196, 197, 322, 210, 280, 281, 282, 283, 284,
1603 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
1604 295, 296, 297, 298, 191, 191, 307, 85, 86, 208,
1605 212, 35, 307, 37, 315, 39, 192, 41, 42, 43,
1606 315, 220, 91, 92, 79, 363, 283, 284, 367, 285,
1607 286, 79, 231, 79, 117, 79, 291, 292, 376, 190,
1608 378, 211, 211, 381, 243, 384, 211, 190, 211, 190,
1609 209, 389, 251, 190, 206, 191, 190, 256, 359, 397,
1610 205, 207, 93, 95, 359, 404, 190, 211, 79, 78,
1611 193, 210, 192, 191, 193, 192, 190, 79, 191, 195,
1612 190, 193, 106, 210, 193, 210, 193, 191, 193, 211,
1613 12, 190, 12, 260, 294, 293, 120, 212, 295, 210,
1614 296, 120, 127, 297, 210, 298, 239, 78, 211, 138,
1615 316, 243, 372, 385, 84, 171, 82, 243, 220, 220,
1616 -1, 322, -1, 322, -1, -1, -1, -1, -1, -1,
1617 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1618 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1619 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1620 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1621 -1, -1, 371, -1, -1, 374, -1, -1, -1, -1,
1622 -1, -1, -1, -1, -1, -1, 385, -1, -1, -1,
1623 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1624 -1, -1, -1, 402, -1, -1, -1, -1, -1, -1,
1625 -1, 410, -1, 412, 3, 4, 5, 6, 7, 8,
1626 9, 10, 11, -1, 13, 14, 15, 16, 17, 18,
1627 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1628 29, 30, 31, 32, 33, 34, 35, -1, 37, -1,
1629 39, -1, 41, 42, 43, 44, 45, 46, 47, 48,
1630 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1631 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1632 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
1633 79, 80, 81, 82, 83, 84, -1, -1, 87, 88,
1634 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1635 -1, -1, -1, -1, -1, -1, -1, 106, 107, 108,
1636 109, -1, 111, -1, -1, -1, -1, -1, -1, -1,
1637 -1, 120, -1, -1, -1, -1, -1, -1, -1, -1,
1638 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1639 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1640 -1, -1, -1, -1, -1, 154, -1, 156, -1, -1,
1641 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1642 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1643 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1644 -1, 190, -1, -1, -1, -1, -1, 196, 197, 198,
1645 199, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1646 -1, -1, 211, 212, 213, 3, 4, 5, 6, 7,
1647 8, 9, 10, 11, -1, 13, 14, 15, 16, 17,
1648 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
1649 28, 29, 30, 31, 32, 33, 34, 35, -1, 37,
1650 -1, 39, -1, 41, 42, 43, 44, 45, 46, 47,
1651 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1652 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1653 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
1654 78, 79, 80, 81, 82, 83, 84, -1, -1, 87,
1655 88, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1656 -1, -1, -1, -1, -1, -1, -1, -1, 106, 107,
1657 108, 109, -1, 111, -1, -1, -1, -1, -1, -1,
1658 -1, -1, 120, -1, -1, -1, -1, -1, -1, -1,
1659 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1660 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1661 -1, -1, -1, -1, -1, -1, 154, -1, 156, -1,
1662 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1663 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1664 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1665 -1, -1, 190, -1, -1, -1, -1, -1, 196, 197,
1666 198, 199, -1, -1, -1, -1, -1, -1, -1, -1,
1667 -1, -1, -1, 211, 212, 213, 3, 4, 5, 6,
1668 7, 8, 9, 10, 11, -1, 13, 14, 15, 16,
1669 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
1670 27, 28, 29, 30, 31, 32, 33, 34, 35, -1,
1671 37, -1, 39, -1, 41, 42, 43, 44, 45, 46,
1672 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1673 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1674 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1675 77, 78, 79, 80, 81, 82, 83, 84, -1, -1,
1676 87, 88, -1, -1, -1, -1, -1, -1, -1, -1,
1677 -1, -1, -1, -1, -1, -1, -1, -1, -1, 106,
1678 107, 108, 109, -1, 111, -1, -1, -1, -1, -1,
1679 -1, -1, -1, 120, -1, -1, -1, -1, -1, -1,
1680 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1681 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1682 -1, -1, -1, -1, -1, -1, -1, 154, -1, 156,
1683 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1684 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1685 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1686 -1, -1, -1, 190, -1, -1, -1, -1, -1, 196,
1687 197, 198, 199, -1, -1, -1, -1, -1, -1, -1,
1688 -1, -1, -1, -1, 211, 212, 213, 3, 4, 5,
1689 6, 7, 8, 9, 10, 11, -1, 13, 14, 15,
1690 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
1691 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
1692 -1, 37, -1, 39, -1, 41, 42, 43, 44, 45,
1693 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1694 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1695 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1696 76, 77, 78, 79, 80, 81, 82, 83, 84, -1,
1697 -1, 87, 88, -1, -1, -1, -1, -1, -1, -1,
1698 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1699 106, 107, 108, 109, -1, 111, -1, -1, -1, -1,
1700 -1, -1, -1, -1, 120, -1, -1, -1, -1, -1,
1701 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1702 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1703 -1, -1, -1, -1, -1, -1, -1, -1, 154, -1,
1704 156, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1705 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1706 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1707 -1, -1, -1, -1, 190, -1, -1, -1, -1, -1,
1708 196, 197, 198, 199, -1, -1, -1, -1, -1, -1,
1709 -1, -1, -1, -1, -1, 211, 212, 213, 3, 4,
1710 5, 6, 7, 8, 9, 10, 11, -1, 13, 14,
1711 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
1712 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1713 35, -1, 37, -1, 39, -1, 41, 42, 43, 44,
1714 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1715 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1716 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1717 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
1718 -1, -1, 87, 88, -1, -1, -1, -1, -1, -1,
1719 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1720 -1, 106, 107, 108, 109, -1, 111, -1, -1, -1,
1721 -1, -1, -1, -1, -1, 120, -1, -1, -1, -1,
1722 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1723 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1724 -1, -1, -1, -1, -1, -1, -1, -1, -1, 154,
1725 -1, 156, -1, -1, -1, -1, -1, -1, -1, -1,
1726 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1727 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1728 -1, -1, -1, -1, -1, 190, -1, -1, -1, -1,
1729 -1, 196, 197, 198, 199, -1, -1, -1, -1, -1,
1730 -1, -1, -1, -1, -1, -1, 211, 212, 3, 4,
1731 5, 6, 7, 8, 9, 10, 11, -1, 13, 14,
1732 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
1733 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1734 35, -1, 37, -1, 39, -1, 41, 42, 43, 44,
1735 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1736 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1737 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1738 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
1739 -1, -1, 87, 88, -1, -1, -1, -1, -1, -1,
1740 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1741 -1, 106, 107, 108, 109, -1, 111, -1, -1, -1,
1742 -1, -1, -1, -1, -1, 120, -1, -1, -1, -1,
1743 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1744 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1745 -1, -1, -1, -1, -1, -1, -1, -1, -1, 154,
1746 -1, 156, -1, -1, -1, -1, -1, -1, -1, -1,
1747 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1748 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1749 -1, -1, -1, -1, -1, 190, -1, -1, -1, -1,
1750 -1, 196, 197, 198, 199, -1, -1, -1, -1, -1,
1751 -1, -1, -1, -1, -1, -1, 211, 212, 3, 4,
1752 5, 6, 7, 8, 9, 10, 11, -1, 13, 14,
1753 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
1754 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1755 35, -1, 37, -1, 39, -1, 41, 42, 43, 44,
1756 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1757 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1758 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1759 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
1760 -1, -1, 87, 88, -1, -1, -1, -1, -1, -1,
1761 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1762 -1, 106, 107, 108, 109, -1, 111, -1, -1, -1,
1763 -1, -1, -1, -1, -1, 120, -1, -1, -1, -1,
1764 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1765 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1766 -1, -1, -1, -1, -1, -1, -1, -1, -1, 154,
1767 -1, 156, -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, -1, -1, -1, -1, -1,
1770 -1, -1, -1, -1, -1, 190, -1, -1, -1, -1,
1771 -1, 196, 197, 198, 199, 3, 4, 5, 6, 7,
1772 8, -1, -1, -1, -1, -1, 211, 212, -1, -1,
1773 -1, -1, 20, 21, 22, 23, 24, 25, 26, 27,
1774 28, 29, 30, 31, 32, 33, 34, 35, -1, 37,
1775 -1, 39, -1, 41, 42, 43, 44, 45, 46, 47,
1776 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1777 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1778 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
1779 -1, 79, 80, 81, 82, 83, 84, -1, -1, 87,
1780 88, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1781 -1, -1, -1, -1, -1, -1, -1, -1, 106, 107,
1782 108, 109, -1, 111, -1, -1, -1, -1, -1, -1,
1783 -1, -1, 120, -1, -1, -1, -1, -1, -1, -1,
1784 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1785 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1786 -1, -1, -1, -1, -1, -1, 154, -1, 156, -1,
1787 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1788 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1789 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1790 -1, -1, 190, -1, -1, -1, -1, -1, 196, 197,
1791 198, 199, 3, 4, 5, 6, 7, 8, -1, -1,
1792 -1, -1, -1, 211, -1, -1, -1, -1, -1, 20,
1793 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
1794 31, 32, 33, 34, 35, -1, 37, -1, 39, -1,
1795 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1796 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1797 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1798 71, 72, 73, 74, 75, 76, 77, -1, 79, 80,
1799 81, 82, 83, 84, -1, -1, 87, 88, -1, -1,
1800 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1801 -1, -1, -1, -1, -1, 106, 107, 108, 109, -1,
1802 -1, -1, -1, -1, -1, -1, -1, -1, -1, 120,
1803 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1804 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1805 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1806 -1, -1, -1, 154, -1, 156, -1, -1, -1, -1,
1807 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1808 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1809 -1, -1, -1, -1, -1, -1, -1, -1, -1, 190,
1810 -1, -1, -1, -1, -1, 196, 197, 198, 199, 5,
1811 6, 7, 8, -1, -1, -1, -1, -1, -1, -1,
1812 211, -1, -1, -1, 20, 21, 22, 23, 24, 25,
1813 26, 27, 28, 29, 30, 31, 32, 33, 34, -1,
1814 -1, -1, -1, -1, -1, -1, -1, -1, 44, 45,
1815 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1816 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1817 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1818 76, 77, -1, 79, -1, -1, -1, -1, -1, -1,
1819 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1820 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1821 -1, 107, 108, 109, -1, -1, -1, -1, -1, -1,
1822 -1, -1, 5, 6, 7, 8, -1, -1, -1, -1,
1823 -1, -1, -1, -1, -1, -1, -1, 20, 21, 22,
1824 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
1825 33, 34, -1, -1, -1, -1, -1, -1, 154, -1,
1826 156, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1827 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1828 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
1829 73, 74, 75, 76, 77, -1, 79, -1, -1, -1,
1830 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1831 -1, -1, -1, -1, -1, -1, -1, 213, -1, -1,
1832 -1, -1, -1, -1, 107, 108, 109, -1, -1, -1,
1833 -1, -1, -1, -1, -1, 5, 6, 7, 8, -1,
1834 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1835 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
1836 30, 31, 32, 33, 34, -1, -1, -1, -1, -1,
1837 -1, 154, -1, 156, 44, 45, 46, 47, 48, 49,
1838 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1839 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1840 70, 71, 72, 73, 74, 75, 76, 77, -1, 79,
1841 80, 81, 82, 83, 84, -1, -1, 87, 88, -1,
1842 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1843 213, -1, -1, -1, -1, -1, -1, 107, 108, 109,
1844 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1845 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1846 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1847 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1848 -1, -1, -1, -1, 154, -1, 156, -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, -1, -1, -1, -1, -1, -1, -1,
1852 190, -1, -1, -1, -1, -1, 196, 197, 198, 199,
1853 3, 4, 5, 6, 7, 8, -1, -1, -1, -1,
1854 -1, 211, -1, -1, -1, -1, -1, 20, 21, 22,
1855 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
1856 33, 34, 35, -1, 37, -1, 39, -1, 41, 42,
1857 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1858 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1859 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
1860 73, 74, 75, 76, 77, -1, 79, 80, 81, 82,
1861 83, 84, -1, -1, 87, 88, -1, -1, -1, -1,
1862 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1863 -1, -1, -1, 106, 107, 108, 109, -1, -1, -1,
1864 -1, -1, -1, -1, -1, -1, -1, 120, -1, -1,
1865 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1866 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1867 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1868 -1, 154, -1, 156, -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, -1, 5, 6, 7, 8, -1, 190, -1, -1,
1872 -1, -1, -1, 196, 197, 198, 199, 20, 21, 22,
1873 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
1874 33, 34, -1, -1, -1, -1, -1, -1, -1, -1,
1875 -1, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1876 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1877 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
1878 73, 74, 75, 76, 77, -1, 79, 80, 81, 82,
1879 83, 84, -1, -1, 87, 88, -1, -1, -1, -1,
1880 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1881 -1, -1, -1, -1, 107, 108, 109, -1, -1, -1,
1882 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1883 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1884 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1885 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1886 -1, 154, -1, 156, -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, 5, 6, 7, 8, -1, 190, -1, -1,
1890 193, -1, -1, 196, 197, 198, 199, 20, 21, 22,
1891 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
1892 33, 34, -1, -1, -1, -1, -1, -1, -1, -1,
1893 -1, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1894 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1895 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
1896 73, 74, 75, 76, 77, -1, 79, 80, 81, 82,
1897 83, 84, -1, -1, 87, 88, -1, -1, -1, -1,
1898 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1899 -1, -1, -1, -1, 107, 108, 109, -1, -1, -1,
1900 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1901 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1902 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1903 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1904 -1, 154, -1, 156, -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, 5, 6, 7, 8, -1, 190, -1, -1,
1908 193, -1, -1, 196, 197, 198, 199, 20, 21, 22,
1909 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
1910 33, 34, -1, -1, -1, -1, -1, -1, -1, -1,
1911 -1, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1912 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1913 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
1914 73, 74, 75, 76, 77, -1, 79, 80, 81, 82,
1915 83, 84, -1, -1, 87, 88, -1, -1, -1, -1,
1916 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1917 -1, -1, -1, -1, 107, 108, 109, -1, -1, -1,
1918 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1919 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1920 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1921 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1922 -1, 154, -1, 156, -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, 5, 6, 7, 8, -1, 190, -1, -1,
1926 193, -1, -1, 196, 197, 198, 199, 20, 21, 22,
1927 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
1928 33, 34, -1, -1, -1, -1, -1, -1, -1, -1,
1929 -1, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1930 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1931 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
1932 73, 74, 75, 76, 77, -1, 79, 80, 81, 82,
1933 83, 84, -1, -1, 87, 88, -1, -1, -1, -1,
1934 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1935 -1, -1, -1, -1, 107, 108, 109, -1, -1, -1,
1936 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1937 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1938 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1939 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1940 -1, 154, -1, 156, -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, 5, 6, 7, 8, -1, 190, -1, -1,
1944 -1, -1, -1, 196, 197, 198, 199, 20, 21, 22,
1945 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
1946 33, 34, -1, -1, -1, -1, -1, -1, -1, -1,
1947 -1, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1948 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1949 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
1950 73, 74, 75, 76, 77, -1, 79, 80, 81, 82,
1951 83, 84, -1, -1, 87, 88, -1, -1, -1, -1,
1952 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1953 -1, -1, -1, -1, 107, 108, 109, -1, -1, -1,
1954 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1955 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1956 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1957 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1958 -1, 154, -1, 156, -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, 0, -1, -1,
1961 3, 4, 5, 6, 7, 8, -1, 190, -1, -1,
1962 -1, -1, -1, 196, 197, 198, 199, 20, 21, 22,
1963 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
1964 33, 34, 35, -1, 37, -1, 39, -1, 41, 42,
1965 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1966 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1967 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
1968 73, 74, 75, 76, 77, -1, 79, -1, -1, -1,
1969 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1970 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1971 -1, -1, -1, 106, 107, 108, 109, -1, 111, -1,
1972 -1, -1, -1, -1, -1, -1, -1, 120, 3, 4,
1973 5, 6, 7, 8, -1, -1, -1, -1, -1, -1,
1974 -1, -1, -1, -1, -1, 20, 21, 22, 23, 24,
1975 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1976 35, 154, 37, 156, 39, -1, 41, 42, 43, 44,
1977 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1978 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1979 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1980 75, 76, 77, -1, 79, -1, -1, -1, -1, -1,
1981 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1982 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1983 -1, 106, 107, 108, 109, -1, 111, -1, -1, -1,
1984 -1, -1, -1, -1, -1, 120, 5, 6, 7, 8,
1985 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1986 -1, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1987 29, 30, 31, 32, 33, 34, -1, -1, -1, 154,
1988 -1, 156, -1, -1, -1, 44, 45, 46, 47, 48,
1989 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1990 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1991 69, 70, 71, 72, 73, 74, 75, 76, 77, -1,
1992 79, -1, -1, -1, -1, 84, -1, -1, -1, -1,
1993 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1994 -1, -1, -1, -1, -1, -1, -1, -1, 107, 108,
1995 109, -1, -1, -1, -1, -1, -1, -1, -1, 5,
1996 6, 7, 8, -1, -1, -1, -1, -1, -1, -1,
1997 -1, -1, -1, -1, 20, 21, 22, 23, 24, 25,
1998 26, 27, 28, 29, 30, 31, 32, 33, 34, -1,
1999 -1, -1, -1, -1, -1, 154, -1, 156, 44, 45,
2000 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
2001 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
2002 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
2003 76, 77, -1, 79, -1, -1, -1, -1, -1, -1,
2004 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2005 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2006 -1, 107, 108, 109, -1, -1, -1, -1, -1, -1,
2007 -1, -1, 5, 6, 7, 8, -1, -1, -1, -1,
2008 -1, -1, -1, -1, -1, -1, -1, 20, 21, 22,
2009 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
2010 33, 34, -1, -1, -1, -1, -1, -1, 154, -1,
2011 156, 44, 45, 46, 47, 48, 49, 50, 51, 52,
2012 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
2013 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
2014 73, 74, 75, 76, 77, -1, 79, -1, -1, -1,
2015 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2016 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2017 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2018 -1, -1, -1, -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,
2025 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
2026 symbol of state STATE-NUM. */
2027 static const yytype_uint16 yystos
[] =
2029 0, 112, 215, 217, 81, 0, 218, 117, 113, 216,
2030 219, 79, 3, 4, 5, 6, 7, 8, 20, 21,
2031 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
2032 32, 33, 34, 35, 37, 39, 41, 42, 43, 44,
2033 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
2034 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
2035 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
2036 75, 76, 77, 79, 106, 107, 108, 109, 111, 120,
2037 154, 156, 220, 250, 251, 252, 253, 254, 259, 260,
2038 261, 262, 263, 266, 268, 269, 270, 271, 272, 273,
2039 274, 275, 301, 302, 116, 36, 37, 40, 79, 212,
2040 79, 106, 268, 274, 190, 301, 211, 212, 288, 191,
2041 195, 4, 36, 37, 38, 256, 257, 267, 195, 211,
2042 79, 36, 40, 268, 270, 192, 271, 79, 212, 270,
2043 276, 277, 271, 79, 264, 265, 9, 10, 11, 13,
2044 14, 15, 16, 17, 18, 19, 78, 79, 80, 81,
2045 82, 83, 84, 87, 88, 190, 196, 197, 198, 199,
2046 211, 212, 213, 221, 222, 223, 225, 226, 227, 228,
2047 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
2048 239, 240, 241, 242, 243, 244, 245, 246, 248, 250,
2049 251, 270, 281, 282, 283, 284, 285, 286, 289, 290,
2050 291, 292, 294, 295, 296, 300, 256, 255, 258, 270,
2051 257, 79, 190, 192, 210, 193, 232, 245, 249, 270,
2052 117, 276, 79, 278, 279, 213, 277, 211, 191, 195,
2053 211, 211, 282, 190, 190, 211, 211, 248, 190, 248,
2054 209, 190, 232, 232, 248, 213, 289, 87, 88, 192,
2055 194, 191, 191, 195, 77, 246, 190, 96, 97, 98,
2056 99, 100, 101, 102, 103, 104, 105, 210, 247, 232,
2057 200, 201, 202, 196, 197, 85, 86, 89, 90, 203,
2058 204, 91, 92, 205, 206, 207, 93, 95, 94, 208,
2059 195, 211, 213, 282, 79, 255, 258, 192, 210, 193,
2060 249, 246, 280, 193, 213, 192, 195, 211, 265, 78,
2061 281, 290, 297, 248, 211, 248, 209, 248, 261, 293,
2062 191, 213, 224, 248, 79, 227, 246, 246, 232, 232,
2063 232, 234, 234, 235, 235, 236, 236, 236, 236, 237,
2064 237, 238, 239, 240, 241, 242, 243, 248, 246, 192,
2065 193, 249, 280, 210, 193, 249, 279, 190, 293, 298,
2066 299, 191, 191, 79, 191, 193, 209, 249, 210, 193,
2067 280, 210, 193, 248, 211, 191, 283, 284, 286, 210,
2068 14, 285, 287, 288, 246, 193, 280, 210, 280, 191,
2069 248, 287, 12, 280, 190, 280, 211, 283, 284, 248,
2073 #define yyerrok (yyerrstatus = 0)
2074 #define yyclearin (yychar = YYEMPTY)
2075 #define YYEMPTY (-2)
2078 #define YYACCEPT goto yyacceptlab
2079 #define YYABORT goto yyabortlab
2080 #define YYERROR goto yyerrorlab
2083 /* Like YYERROR except do call yyerror. This remains here temporarily
2084 to ease the transition to the new meaning of YYERROR, for GCC.
2085 Once GCC version 2 has supplanted version 1, this can go. */
2087 #define YYFAIL goto yyerrlab
2089 #define YYRECOVERING() (!!yyerrstatus)
2091 #define YYBACKUP(Token, Value) \
2093 if (yychar == YYEMPTY && yylen == 1) \
2097 yytoken = YYTRANSLATE (yychar); \
2103 yyerror (&yylloc, state, YY_("syntax error: cannot back up")); \
2110 #define YYERRCODE 256
2113 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
2114 If N is 0, then set CURRENT to the empty location which ends
2115 the previous symbol: RHS[0] (always defined). */
2117 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
2118 #ifndef YYLLOC_DEFAULT
2119 # define YYLLOC_DEFAULT(Current, Rhs, N) \
2123 (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
2124 (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
2125 (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
2126 (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
2130 (Current).first_line = (Current).last_line = \
2131 YYRHSLOC (Rhs, 0).last_line; \
2132 (Current).first_column = (Current).last_column = \
2133 YYRHSLOC (Rhs, 0).last_column; \
2139 /* YY_LOCATION_PRINT -- Print the location on the stream.
2140 This macro was not mandated originally: define only if we know
2141 we won't break user code: when these are the locations we know. */
2143 #ifndef YY_LOCATION_PRINT
2144 # if YYLTYPE_IS_TRIVIAL
2145 # define YY_LOCATION_PRINT(File, Loc) \
2146 fprintf (File, "%d.%d-%d.%d", \
2147 (Loc).first_line, (Loc).first_column, \
2148 (Loc).last_line, (Loc).last_column)
2150 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2155 /* YYLEX -- calling `yylex' with the right arguments. */
2158 # define YYLEX yylex (&yylval, &yylloc, YYLEX_PARAM)
2160 # define YYLEX yylex (&yylval, &yylloc, scanner)
2163 /* Enable debugging if requested. */
2167 # include <stdio.h> /* INFRINGES ON USER NAME SPACE */
2168 # define YYFPRINTF fprintf
2171 # define YYDPRINTF(Args) \
2177 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
2181 YYFPRINTF (stderr, "%s ", Title); \
2182 yy_symbol_print (stderr, \
2183 Type, Value, Location, state); \
2184 YYFPRINTF (stderr, "\n"); \
2189 /*--------------------------------.
2190 | Print this symbol on YYOUTPUT. |
2191 `--------------------------------*/
2194 #if (defined __STDC__ || defined __C99__FUNC__ \
2195 || defined __cplusplus || defined _MSC_VER)
2197 yy_symbol_value_print (FILE *yyoutput
, int yytype
, YYSTYPE
const * const yyvaluep
, YYLTYPE
const * const yylocationp
, struct _mesa_glsl_parse_state
*state
)
2200 yy_symbol_value_print (yyoutput
, yytype
, yyvaluep
, yylocationp
, state
)
2203 YYSTYPE
const * const yyvaluep
;
2204 YYLTYPE
const * const yylocationp
;
2205 struct _mesa_glsl_parse_state
*state
;
2210 YYUSE (yylocationp
);
2213 if (yytype
< YYNTOKENS
)
2214 YYPRINT (yyoutput
, yytoknum
[yytype
], *yyvaluep
);
2226 /*--------------------------------.
2227 | Print this symbol on YYOUTPUT. |
2228 `--------------------------------*/
2230 #if (defined __STDC__ || defined __C99__FUNC__ \
2231 || defined __cplusplus || defined _MSC_VER)
2233 yy_symbol_print (FILE *yyoutput
, int yytype
, YYSTYPE
const * const yyvaluep
, YYLTYPE
const * const yylocationp
, struct _mesa_glsl_parse_state
*state
)
2236 yy_symbol_print (yyoutput
, yytype
, yyvaluep
, yylocationp
, state
)
2239 YYSTYPE
const * const yyvaluep
;
2240 YYLTYPE
const * const yylocationp
;
2241 struct _mesa_glsl_parse_state
*state
;
2244 if (yytype
< YYNTOKENS
)
2245 YYFPRINTF (yyoutput
, "token %s (", yytname
[yytype
]);
2247 YYFPRINTF (yyoutput
, "nterm %s (", yytname
[yytype
]);
2249 YY_LOCATION_PRINT (yyoutput
, *yylocationp
);
2250 YYFPRINTF (yyoutput
, ": ");
2251 yy_symbol_value_print (yyoutput
, yytype
, yyvaluep
, yylocationp
, state
);
2252 YYFPRINTF (yyoutput
, ")");
2255 /*------------------------------------------------------------------.
2256 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
2258 `------------------------------------------------------------------*/
2260 #if (defined __STDC__ || defined __C99__FUNC__ \
2261 || defined __cplusplus || defined _MSC_VER)
2263 yy_stack_print (yytype_int16
*yybottom
, yytype_int16
*yytop
)
2266 yy_stack_print (yybottom
, yytop
)
2267 yytype_int16
*yybottom
;
2268 yytype_int16
*yytop
;
2271 YYFPRINTF (stderr
, "Stack now");
2272 for (; yybottom
<= yytop
; yybottom
++)
2274 int yybot
= *yybottom
;
2275 YYFPRINTF (stderr
, " %d", yybot
);
2277 YYFPRINTF (stderr
, "\n");
2280 # define YY_STACK_PRINT(Bottom, Top) \
2283 yy_stack_print ((Bottom), (Top)); \
2287 /*------------------------------------------------.
2288 | Report that the YYRULE is going to be reduced. |
2289 `------------------------------------------------*/
2291 #if (defined __STDC__ || defined __C99__FUNC__ \
2292 || defined __cplusplus || defined _MSC_VER)
2294 yy_reduce_print (YYSTYPE
*yyvsp
, YYLTYPE
*yylsp
, int yyrule
, struct _mesa_glsl_parse_state
*state
)
2297 yy_reduce_print (yyvsp
, yylsp
, yyrule
, state
)
2301 struct _mesa_glsl_parse_state
*state
;
2304 int yynrhs
= yyr2
[yyrule
];
2306 unsigned long int yylno
= yyrline
[yyrule
];
2307 YYFPRINTF (stderr
, "Reducing stack by rule %d (line %lu):\n",
2309 /* The symbols being reduced. */
2310 for (yyi
= 0; yyi
< yynrhs
; yyi
++)
2312 YYFPRINTF (stderr
, " $%d = ", yyi
+ 1);
2313 yy_symbol_print (stderr
, yyrhs
[yyprhs
[yyrule
] + yyi
],
2314 &(yyvsp
[(yyi
+ 1) - (yynrhs
)])
2315 , &(yylsp
[(yyi
+ 1) - (yynrhs
)]) , state
);
2316 YYFPRINTF (stderr
, "\n");
2320 # define YY_REDUCE_PRINT(Rule) \
2323 yy_reduce_print (yyvsp, yylsp, Rule, state); \
2326 /* Nonzero means print parse trace. It is left uninitialized so that
2327 multiple parsers can coexist. */
2329 #else /* !YYDEBUG */
2330 # define YYDPRINTF(Args)
2331 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
2332 # define YY_STACK_PRINT(Bottom, Top)
2333 # define YY_REDUCE_PRINT(Rule)
2334 #endif /* !YYDEBUG */
2337 /* YYINITDEPTH -- initial size of the parser's stacks. */
2339 # define YYINITDEPTH 200
2342 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
2343 if the built-in stack extension method is used).
2345 Do not make this value too large; the results are undefined if
2346 YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
2347 evaluated with infinite-precision integer arithmetic. */
2350 # define YYMAXDEPTH 10000
2358 # if defined __GLIBC__ && defined _STRING_H
2359 # define yystrlen strlen
2361 /* Return the length of YYSTR. */
2362 #if (defined __STDC__ || defined __C99__FUNC__ \
2363 || defined __cplusplus || defined _MSC_VER)
2365 yystrlen (const char *yystr
)
2373 for (yylen
= 0; yystr
[yylen
]; yylen
++)
2381 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
2382 # define yystpcpy stpcpy
2384 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
2386 #if (defined __STDC__ || defined __C99__FUNC__ \
2387 || defined __cplusplus || defined _MSC_VER)
2389 yystpcpy (char *yydest
, const char *yysrc
)
2392 yystpcpy (yydest
, yysrc
)
2398 const char *yys
= yysrc
;
2400 while ((*yyd
++ = *yys
++) != '\0')
2409 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
2410 quotes and backslashes, so that it's suitable for yyerror. The
2411 heuristic is that double-quoting is unnecessary unless the string
2412 contains an apostrophe, a comma, or backslash (other than
2413 backslash-backslash). YYSTR is taken from yytname. If YYRES is
2414 null, do not copy; instead, return the length of what the result
2417 yytnamerr (char *yyres
, const char *yystr
)
2422 char const *yyp
= yystr
;
2429 goto do_not_strip_quotes
;
2433 goto do_not_strip_quotes
;
2446 do_not_strip_quotes
: ;
2450 return yystrlen (yystr
);
2452 return yystpcpy (yyres
, yystr
) - yyres
;
2456 /* Copy into YYRESULT an error message about the unexpected token
2457 YYCHAR while in state YYSTATE. Return the number of bytes copied,
2458 including the terminating null byte. If YYRESULT is null, do not
2459 copy anything; just return the number of bytes that would be
2460 copied. As a special case, return 0 if an ordinary "syntax error"
2461 message will do. Return YYSIZE_MAXIMUM if overflow occurs during
2462 size calculation. */
2464 yysyntax_error (char *yyresult
, int yystate
, int yychar
)
2466 int yyn
= yypact
[yystate
];
2468 if (! (YYPACT_NINF
< yyn
&& yyn
<= YYLAST
))
2472 int yytype
= YYTRANSLATE (yychar
);
2473 YYSIZE_T yysize0
= yytnamerr (0, yytname
[yytype
]);
2474 YYSIZE_T yysize
= yysize0
;
2476 int yysize_overflow
= 0;
2477 enum { YYERROR_VERBOSE_ARGS_MAXIMUM
= 5 };
2478 char const *yyarg
[YYERROR_VERBOSE_ARGS_MAXIMUM
];
2482 /* This is so xgettext sees the translatable formats that are
2483 constructed on the fly. */
2484 YY_("syntax error, unexpected %s");
2485 YY_("syntax error, unexpected %s, expecting %s");
2486 YY_("syntax error, unexpected %s, expecting %s or %s");
2487 YY_("syntax error, unexpected %s, expecting %s or %s or %s");
2488 YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
2492 static char const yyunexpected
[] = "syntax error, unexpected %s";
2493 static char const yyexpecting
[] = ", expecting %s";
2494 static char const yyor
[] = " or %s";
2495 char yyformat
[sizeof yyunexpected
2496 + sizeof yyexpecting
- 1
2497 + ((YYERROR_VERBOSE_ARGS_MAXIMUM
- 2)
2498 * (sizeof yyor
- 1))];
2499 char const *yyprefix
= yyexpecting
;
2501 /* Start YYX at -YYN if negative to avoid negative indexes in
2503 int yyxbegin
= yyn
< 0 ? -yyn
: 0;
2505 /* Stay within bounds of both yycheck and yytname. */
2506 int yychecklim
= YYLAST
- yyn
+ 1;
2507 int yyxend
= yychecklim
< YYNTOKENS
? yychecklim
: YYNTOKENS
;
2510 yyarg
[0] = yytname
[yytype
];
2511 yyfmt
= yystpcpy (yyformat
, yyunexpected
);
2513 for (yyx
= yyxbegin
; yyx
< yyxend
; ++yyx
)
2514 if (yycheck
[yyx
+ yyn
] == yyx
&& yyx
!= YYTERROR
)
2516 if (yycount
== YYERROR_VERBOSE_ARGS_MAXIMUM
)
2520 yyformat
[sizeof yyunexpected
- 1] = '\0';
2523 yyarg
[yycount
++] = yytname
[yyx
];
2524 yysize1
= yysize
+ yytnamerr (0, yytname
[yyx
]);
2525 yysize_overflow
|= (yysize1
< yysize
);
2527 yyfmt
= yystpcpy (yyfmt
, yyprefix
);
2531 yyf
= YY_(yyformat
);
2532 yysize1
= yysize
+ yystrlen (yyf
);
2533 yysize_overflow
|= (yysize1
< yysize
);
2536 if (yysize_overflow
)
2537 return YYSIZE_MAXIMUM
;
2541 /* Avoid sprintf, as that infringes on the user's name space.
2542 Don't have undefined behavior even if the translation
2543 produced a string with the wrong number of "%s"s. */
2544 char *yyp
= yyresult
;
2546 while ((*yyp
= *yyf
) != '\0')
2548 if (*yyp
== '%' && yyf
[1] == 's' && yyi
< yycount
)
2550 yyp
+= yytnamerr (yyp
, yyarg
[yyi
++]);
2563 #endif /* YYERROR_VERBOSE */
2566 /*-----------------------------------------------.
2567 | Release the memory associated to this symbol. |
2568 `-----------------------------------------------*/
2571 #if (defined __STDC__ || defined __C99__FUNC__ \
2572 || defined __cplusplus || defined _MSC_VER)
2574 yydestruct (const char *yymsg
, int yytype
, YYSTYPE
*yyvaluep
, YYLTYPE
*yylocationp
, struct _mesa_glsl_parse_state
*state
)
2577 yydestruct (yymsg
, yytype
, yyvaluep
, yylocationp
, state
)
2581 YYLTYPE
*yylocationp
;
2582 struct _mesa_glsl_parse_state
*state
;
2586 YYUSE (yylocationp
);
2591 YY_SYMBOL_PRINT (yymsg
, yytype
, yyvaluep
, yylocationp
);
2601 /* Prevent warnings from -Wmissing-prototypes. */
2602 #ifdef YYPARSE_PARAM
2603 #if defined __STDC__ || defined __cplusplus
2604 int yyparse (void *YYPARSE_PARAM
);
2608 #else /* ! YYPARSE_PARAM */
2609 #if defined __STDC__ || defined __cplusplus
2610 int yyparse (struct _mesa_glsl_parse_state
*state
);
2614 #endif /* ! YYPARSE_PARAM */
2620 /*-------------------------.
2621 | yyparse or yypush_parse. |
2622 `-------------------------*/
2624 #ifdef YYPARSE_PARAM
2625 #if (defined __STDC__ || defined __C99__FUNC__ \
2626 || defined __cplusplus || defined _MSC_VER)
2628 yyparse (void *YYPARSE_PARAM
)
2631 yyparse (YYPARSE_PARAM
)
2632 void *YYPARSE_PARAM
;
2634 #else /* ! YYPARSE_PARAM */
2635 #if (defined __STDC__ || defined __C99__FUNC__ \
2636 || defined __cplusplus || defined _MSC_VER)
2638 yyparse (struct _mesa_glsl_parse_state
*state
)
2642 struct _mesa_glsl_parse_state
*state
;
2646 /* The lookahead symbol. */
2649 /* The semantic value of the lookahead symbol. */
2652 /* Location data for the lookahead symbol. */
2655 /* Number of syntax errors so far. */
2659 /* Number of tokens to shift before error messages enabled. */
2662 /* The stacks and their tools:
2663 `yyss': related to states.
2664 `yyvs': related to semantic values.
2665 `yyls': related to locations.
2667 Refer to the stacks thru separate pointers, to allow yyoverflow
2668 to reallocate them elsewhere. */
2670 /* The state stack. */
2671 yytype_int16 yyssa
[YYINITDEPTH
];
2673 yytype_int16
*yyssp
;
2675 /* The semantic value stack. */
2676 YYSTYPE yyvsa
[YYINITDEPTH
];
2680 /* The location stack. */
2681 YYLTYPE yylsa
[YYINITDEPTH
];
2685 /* The locations where the error started and ended. */
2686 YYLTYPE yyerror_range
[2];
2688 YYSIZE_T yystacksize
;
2692 /* Lookahead token as an internal (translated) token number. */
2694 /* The variables used to return semantic value and location from the
2700 /* Buffer for error messages, and its allocated size. */
2702 char *yymsg
= yymsgbuf
;
2703 YYSIZE_T yymsg_alloc
= sizeof yymsgbuf
;
2706 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N), yylsp -= (N))
2708 /* The number of symbols on the RHS of the reduced rule.
2709 Keep to zero when no symbol should be popped. */
2716 yystacksize
= YYINITDEPTH
;
2718 YYDPRINTF ((stderr
, "Starting parse\n"));
2723 yychar
= YYEMPTY
; /* Cause a token to be read. */
2725 /* Initialize stack pointers.
2726 Waste one element of value and location stack
2727 so that they stay on the same level as the state stack.
2728 The wasted elements are never initialized. */
2733 #if YYLTYPE_IS_TRIVIAL
2734 /* Initialize the default location before parsing starts. */
2735 yylloc
.first_line
= yylloc
.last_line
= 1;
2736 yylloc
.first_column
= yylloc
.last_column
= 1;
2739 /* User initialization code. */
2741 /* Line 1242 of yacc.c */
2742 #line 41 "glsl_parser.ypp"
2744 yylloc
.first_line
= 1;
2745 yylloc
.first_column
= 1;
2746 yylloc
.last_line
= 1;
2747 yylloc
.last_column
= 1;
2751 /* Line 1242 of yacc.c */
2752 #line 2753 "glsl_parser.cpp"
2757 /*------------------------------------------------------------.
2758 | yynewstate -- Push a new state, which is found in yystate. |
2759 `------------------------------------------------------------*/
2761 /* In all cases, when you get here, the value and location stacks
2762 have just been pushed. So pushing a state here evens the stacks. */
2768 if (yyss
+ yystacksize
- 1 <= yyssp
)
2770 /* Get the current used size of the three stacks, in elements. */
2771 YYSIZE_T yysize
= yyssp
- yyss
+ 1;
2775 /* Give user a chance to reallocate the stack. Use copies of
2776 these so that the &'s don't force the real ones into
2778 YYSTYPE
*yyvs1
= yyvs
;
2779 yytype_int16
*yyss1
= yyss
;
2780 YYLTYPE
*yyls1
= yyls
;
2782 /* Each stack pointer address is followed by the size of the
2783 data in use in that stack, in bytes. This used to be a
2784 conditional around just the two extra args, but that might
2785 be undefined if yyoverflow is a macro. */
2786 yyoverflow (YY_("memory exhausted"),
2787 &yyss1
, yysize
* sizeof (*yyssp
),
2788 &yyvs1
, yysize
* sizeof (*yyvsp
),
2789 &yyls1
, yysize
* sizeof (*yylsp
),
2796 #else /* no yyoverflow */
2797 # ifndef YYSTACK_RELOCATE
2798 goto yyexhaustedlab
;
2800 /* Extend the stack our own way. */
2801 if (YYMAXDEPTH
<= yystacksize
)
2802 goto yyexhaustedlab
;
2804 if (YYMAXDEPTH
< yystacksize
)
2805 yystacksize
= YYMAXDEPTH
;
2808 yytype_int16
*yyss1
= yyss
;
2809 union yyalloc
*yyptr
=
2810 (union yyalloc
*) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize
));
2812 goto yyexhaustedlab
;
2813 YYSTACK_RELOCATE (yyss_alloc
, yyss
);
2814 YYSTACK_RELOCATE (yyvs_alloc
, yyvs
);
2815 YYSTACK_RELOCATE (yyls_alloc
, yyls
);
2816 # undef YYSTACK_RELOCATE
2818 YYSTACK_FREE (yyss1
);
2821 #endif /* no yyoverflow */
2823 yyssp
= yyss
+ yysize
- 1;
2824 yyvsp
= yyvs
+ yysize
- 1;
2825 yylsp
= yyls
+ yysize
- 1;
2827 YYDPRINTF ((stderr
, "Stack size increased to %lu\n",
2828 (unsigned long int) yystacksize
));
2830 if (yyss
+ yystacksize
- 1 <= yyssp
)
2834 YYDPRINTF ((stderr
, "Entering state %d\n", yystate
));
2836 if (yystate
== YYFINAL
)
2846 /* Do appropriate processing given the current state. Read a
2847 lookahead token if we need one and don't already have one. */
2849 /* First try to decide what to do without reference to lookahead token. */
2850 yyn
= yypact
[yystate
];
2851 if (yyn
== YYPACT_NINF
)
2854 /* Not known => get a lookahead token if don't already have one. */
2856 /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
2857 if (yychar
== YYEMPTY
)
2859 YYDPRINTF ((stderr
, "Reading a token: "));
2863 if (yychar
<= YYEOF
)
2865 yychar
= yytoken
= YYEOF
;
2866 YYDPRINTF ((stderr
, "Now at end of input.\n"));
2870 yytoken
= YYTRANSLATE (yychar
);
2871 YY_SYMBOL_PRINT ("Next token is", yytoken
, &yylval
, &yylloc
);
2874 /* If the proper action on seeing token YYTOKEN is to reduce or to
2875 detect an error, take that action. */
2877 if (yyn
< 0 || YYLAST
< yyn
|| yycheck
[yyn
] != yytoken
)
2882 if (yyn
== 0 || yyn
== YYTABLE_NINF
)
2888 /* Count tokens shifted since error; after three, turn off error
2893 /* Shift the lookahead token. */
2894 YY_SYMBOL_PRINT ("Shifting", yytoken
, &yylval
, &yylloc
);
2896 /* Discard the shifted token. */
2905 /*-----------------------------------------------------------.
2906 | yydefault -- do the default action for the current state. |
2907 `-----------------------------------------------------------*/
2909 yyn
= yydefact
[yystate
];
2915 /*-----------------------------.
2916 | yyreduce -- Do a reduction. |
2917 `-----------------------------*/
2919 /* yyn is the number of a rule to reduce with. */
2922 /* If YYLEN is nonzero, implement the default value of the action:
2925 Otherwise, the following line sets YYVAL to garbage.
2926 This behavior is undocumented and Bison
2927 users should not rely upon it. Assigning to YYVAL
2928 unconditionally makes the parser a bit smaller, and it avoids a
2929 GCC warning that YYVAL may be used uninitialized. */
2930 yyval
= yyvsp
[1-yylen
];
2932 /* Default location. */
2933 YYLLOC_DEFAULT (yyloc
, (yylsp
- yylen
), yylen
);
2934 YY_REDUCE_PRINT (yyn
);
2939 /* Line 1455 of yacc.c */
2940 #line 208 "glsl_parser.ypp"
2942 _mesa_glsl_initialize_types(state
);
2948 /* Line 1455 of yacc.c */
2949 #line 216 "glsl_parser.ypp"
2951 state
->language_version
= 110;
2957 /* Line 1455 of yacc.c */
2958 #line 220 "glsl_parser.ypp"
2960 switch ((yyvsp
[(2) - (3)].n
)) {
2964 /* FINISHME: Check against implementation support versions. */
2965 state
->language_version
= (yyvsp
[(2) - (3)].n
);
2968 _mesa_glsl_error(& (yylsp
[(2) - (3)]), state
, "Shading language version"
2969 "%u is not supported\n", (yyvsp
[(2) - (3)].n
));
2977 /* Line 1455 of yacc.c */
2978 #line 243 "glsl_parser.ypp"
2980 if (!_mesa_glsl_process_extension((yyvsp
[(2) - (5)].identifier
), & (yylsp
[(2) - (5)]), (yyvsp
[(4) - (5)].identifier
), & (yylsp
[(4) - (5)]), state
)) {
2988 /* Line 1455 of yacc.c */
2989 #line 252 "glsl_parser.ypp"
2991 /* FINISHME: The NULL test is only required because 'precision'
2992 * FINISHME: statements are not yet supported.
2994 if ((yyvsp
[(1) - (1)].node
) != NULL
)
2995 state
->translation_unit
.push_tail(& (yyvsp
[(1) - (1)].node
)->link
);
3001 /* Line 1455 of yacc.c */
3002 #line 260 "glsl_parser.ypp"
3004 /* FINISHME: The NULL test is only required because 'precision'
3005 * FINISHME: statements are not yet supported.
3007 if ((yyvsp
[(2) - (2)].node
) != NULL
)
3008 state
->translation_unit
.push_tail(& (yyvsp
[(2) - (2)].node
)->link
);
3014 /* Line 1455 of yacc.c */
3015 #line 275 "glsl_parser.ypp"
3018 (yyval
.expression
) = new(ctx
) ast_expression(ast_identifier
, NULL
, NULL
, NULL
);
3019 (yyval
.expression
)->set_location(yylloc
);
3020 (yyval
.expression
)->primary_expression
.identifier
= (yyvsp
[(1) - (1)].identifier
);
3026 /* Line 1455 of yacc.c */
3027 #line 282 "glsl_parser.ypp"
3030 (yyval
.expression
) = new(ctx
) ast_expression(ast_int_constant
, NULL
, NULL
, NULL
);
3031 (yyval
.expression
)->set_location(yylloc
);
3032 (yyval
.expression
)->primary_expression
.int_constant
= (yyvsp
[(1) - (1)].n
);
3038 /* Line 1455 of yacc.c */
3039 #line 289 "glsl_parser.ypp"
3042 (yyval
.expression
) = new(ctx
) ast_expression(ast_uint_constant
, NULL
, NULL
, NULL
);
3043 (yyval
.expression
)->set_location(yylloc
);
3044 (yyval
.expression
)->primary_expression
.uint_constant
= (yyvsp
[(1) - (1)].n
);
3050 /* Line 1455 of yacc.c */
3051 #line 296 "glsl_parser.ypp"
3054 (yyval
.expression
) = new(ctx
) ast_expression(ast_float_constant
, NULL
, NULL
, NULL
);
3055 (yyval
.expression
)->set_location(yylloc
);
3056 (yyval
.expression
)->primary_expression
.float_constant
= (yyvsp
[(1) - (1)].real
);
3062 /* Line 1455 of yacc.c */
3063 #line 303 "glsl_parser.ypp"
3066 (yyval
.expression
) = new(ctx
) ast_expression(ast_bool_constant
, NULL
, NULL
, NULL
);
3067 (yyval
.expression
)->set_location(yylloc
);
3068 (yyval
.expression
)->primary_expression
.bool_constant
= (yyvsp
[(1) - (1)].n
);
3074 /* Line 1455 of yacc.c */
3075 #line 310 "glsl_parser.ypp"
3077 (yyval
.expression
) = (yyvsp
[(2) - (3)].expression
);
3083 /* Line 1455 of yacc.c */
3084 #line 318 "glsl_parser.ypp"
3087 (yyval
.expression
) = new(ctx
) ast_expression(ast_array_index
, (yyvsp
[(1) - (4)].expression
), (yyvsp
[(3) - (4)].expression
), NULL
);
3088 (yyval
.expression
)->set_location(yylloc
);
3094 /* Line 1455 of yacc.c */
3095 #line 324 "glsl_parser.ypp"
3097 (yyval
.expression
) = (yyvsp
[(1) - (1)].expression
);
3103 /* Line 1455 of yacc.c */
3104 #line 328 "glsl_parser.ypp"
3107 (yyval
.expression
) = new(ctx
) ast_expression(ast_field_selection
, (yyvsp
[(1) - (3)].expression
), NULL
, NULL
);
3108 (yyval
.expression
)->set_location(yylloc
);
3109 (yyval
.expression
)->primary_expression
.identifier
= (yyvsp
[(3) - (3)].identifier
);
3115 /* Line 1455 of yacc.c */
3116 #line 335 "glsl_parser.ypp"
3119 (yyval
.expression
) = new(ctx
) ast_expression(ast_post_inc
, (yyvsp
[(1) - (2)].expression
), NULL
, NULL
);
3120 (yyval
.expression
)->set_location(yylloc
);
3126 /* Line 1455 of yacc.c */
3127 #line 341 "glsl_parser.ypp"
3130 (yyval
.expression
) = new(ctx
) ast_expression(ast_post_dec
, (yyvsp
[(1) - (2)].expression
), NULL
, NULL
);
3131 (yyval
.expression
)->set_location(yylloc
);
3137 /* Line 1455 of yacc.c */
3138 #line 359 "glsl_parser.ypp"
3141 (yyval
.expression
) = new(ctx
) ast_expression(ast_field_selection
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
), NULL
);
3142 (yyval
.expression
)->set_location(yylloc
);
3148 /* Line 1455 of yacc.c */
3149 #line 378 "glsl_parser.ypp"
3151 (yyval
.expression
) = (yyvsp
[(1) - (2)].expression
);
3152 (yyval
.expression
)->set_location(yylloc
);
3153 (yyval
.expression
)->expressions
.push_tail(& (yyvsp
[(2) - (2)].expression
)->link
);
3159 /* Line 1455 of yacc.c */
3160 #line 384 "glsl_parser.ypp"
3162 (yyval
.expression
) = (yyvsp
[(1) - (3)].expression
);
3163 (yyval
.expression
)->set_location(yylloc
);
3164 (yyval
.expression
)->expressions
.push_tail(& (yyvsp
[(3) - (3)].expression
)->link
);
3170 /* Line 1455 of yacc.c */
3171 #line 400 "glsl_parser.ypp"
3174 (yyval
.expression
) = new(ctx
) ast_function_expression((yyvsp
[(1) - (1)].type_specifier
));
3175 (yyval
.expression
)->set_location(yylloc
);
3181 /* Line 1455 of yacc.c */
3182 #line 406 "glsl_parser.ypp"
3185 ast_expression
*callee
= new(ctx
) ast_expression((yyvsp
[(1) - (1)].identifier
));
3186 (yyval
.expression
) = new(ctx
) ast_function_expression(callee
);
3187 (yyval
.expression
)->set_location(yylloc
);
3193 /* Line 1455 of yacc.c */
3194 #line 413 "glsl_parser.ypp"
3197 ast_expression
*callee
= new(ctx
) ast_expression((yyvsp
[(1) - (1)].identifier
));
3198 (yyval
.expression
) = new(ctx
) ast_function_expression(callee
);
3199 (yyval
.expression
)->set_location(yylloc
);
3205 /* Line 1455 of yacc.c */
3206 #line 425 "glsl_parser.ypp"
3209 (yyval
.expression
) = new(ctx
) ast_expression(ast_pre_inc
, (yyvsp
[(2) - (2)].expression
), NULL
, NULL
);
3210 (yyval
.expression
)->set_location(yylloc
);
3216 /* Line 1455 of yacc.c */
3217 #line 431 "glsl_parser.ypp"
3220 (yyval
.expression
) = new(ctx
) ast_expression(ast_pre_dec
, (yyvsp
[(2) - (2)].expression
), NULL
, NULL
);
3221 (yyval
.expression
)->set_location(yylloc
);
3227 /* Line 1455 of yacc.c */
3228 #line 437 "glsl_parser.ypp"
3231 (yyval
.expression
) = new(ctx
) ast_expression((yyvsp
[(1) - (2)].n
), (yyvsp
[(2) - (2)].expression
), NULL
, NULL
);
3232 (yyval
.expression
)->set_location(yylloc
);
3238 /* Line 1455 of yacc.c */
3239 #line 446 "glsl_parser.ypp"
3240 { (yyval
.n
) = ast_plus
; ;}
3245 /* Line 1455 of yacc.c */
3246 #line 447 "glsl_parser.ypp"
3247 { (yyval
.n
) = ast_neg
; ;}
3252 /* Line 1455 of yacc.c */
3253 #line 448 "glsl_parser.ypp"
3254 { (yyval
.n
) = ast_logic_not
; ;}
3259 /* Line 1455 of yacc.c */
3260 #line 449 "glsl_parser.ypp"
3261 { (yyval
.n
) = ast_bit_not
; ;}
3266 /* Line 1455 of yacc.c */
3267 #line 455 "glsl_parser.ypp"
3270 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_mul
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3271 (yyval
.expression
)->set_location(yylloc
);
3277 /* Line 1455 of yacc.c */
3278 #line 461 "glsl_parser.ypp"
3281 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_div
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3282 (yyval
.expression
)->set_location(yylloc
);
3288 /* Line 1455 of yacc.c */
3289 #line 467 "glsl_parser.ypp"
3292 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_mod
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3293 (yyval
.expression
)->set_location(yylloc
);
3299 /* Line 1455 of yacc.c */
3300 #line 477 "glsl_parser.ypp"
3303 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_add
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3304 (yyval
.expression
)->set_location(yylloc
);
3310 /* Line 1455 of yacc.c */
3311 #line 483 "glsl_parser.ypp"
3314 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_sub
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3315 (yyval
.expression
)->set_location(yylloc
);
3321 /* Line 1455 of yacc.c */
3322 #line 493 "glsl_parser.ypp"
3325 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_lshift
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3326 (yyval
.expression
)->set_location(yylloc
);
3332 /* Line 1455 of yacc.c */
3333 #line 499 "glsl_parser.ypp"
3336 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_rshift
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3337 (yyval
.expression
)->set_location(yylloc
);
3343 /* Line 1455 of yacc.c */
3344 #line 509 "glsl_parser.ypp"
3347 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_less
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3348 (yyval
.expression
)->set_location(yylloc
);
3354 /* Line 1455 of yacc.c */
3355 #line 515 "glsl_parser.ypp"
3358 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_greater
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3359 (yyval
.expression
)->set_location(yylloc
);
3365 /* Line 1455 of yacc.c */
3366 #line 521 "glsl_parser.ypp"
3369 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_lequal
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3370 (yyval
.expression
)->set_location(yylloc
);
3376 /* Line 1455 of yacc.c */
3377 #line 527 "glsl_parser.ypp"
3380 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_gequal
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3381 (yyval
.expression
)->set_location(yylloc
);
3387 /* Line 1455 of yacc.c */
3388 #line 537 "glsl_parser.ypp"
3391 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_equal
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3392 (yyval
.expression
)->set_location(yylloc
);
3398 /* Line 1455 of yacc.c */
3399 #line 543 "glsl_parser.ypp"
3402 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_nequal
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3403 (yyval
.expression
)->set_location(yylloc
);
3409 /* Line 1455 of yacc.c */
3410 #line 553 "glsl_parser.ypp"
3413 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_bit_or
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3414 (yyval
.expression
)->set_location(yylloc
);
3420 /* Line 1455 of yacc.c */
3421 #line 563 "glsl_parser.ypp"
3424 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_bit_xor
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3425 (yyval
.expression
)->set_location(yylloc
);
3431 /* Line 1455 of yacc.c */
3432 #line 573 "glsl_parser.ypp"
3435 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_bit_or
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3436 (yyval
.expression
)->set_location(yylloc
);
3442 /* Line 1455 of yacc.c */
3443 #line 583 "glsl_parser.ypp"
3446 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_logic_and
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3447 (yyval
.expression
)->set_location(yylloc
);
3453 /* Line 1455 of yacc.c */
3454 #line 593 "glsl_parser.ypp"
3457 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_logic_xor
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3458 (yyval
.expression
)->set_location(yylloc
);
3464 /* Line 1455 of yacc.c */
3465 #line 603 "glsl_parser.ypp"
3468 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_logic_or
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3469 (yyval
.expression
)->set_location(yylloc
);
3475 /* Line 1455 of yacc.c */
3476 #line 613 "glsl_parser.ypp"
3479 (yyval
.expression
) = new(ctx
) ast_expression(ast_conditional
, (yyvsp
[(1) - (5)].expression
), (yyvsp
[(3) - (5)].expression
), (yyvsp
[(5) - (5)].expression
));
3480 (yyval
.expression
)->set_location(yylloc
);
3486 /* Line 1455 of yacc.c */
3487 #line 623 "glsl_parser.ypp"
3490 (yyval
.expression
) = new(ctx
) ast_expression((yyvsp
[(2) - (3)].n
), (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
), NULL
);
3491 (yyval
.expression
)->set_location(yylloc
);
3497 /* Line 1455 of yacc.c */
3498 #line 631 "glsl_parser.ypp"
3499 { (yyval
.n
) = ast_assign
; ;}
3504 /* Line 1455 of yacc.c */
3505 #line 632 "glsl_parser.ypp"
3506 { (yyval
.n
) = ast_mul_assign
; ;}
3511 /* Line 1455 of yacc.c */
3512 #line 633 "glsl_parser.ypp"
3513 { (yyval
.n
) = ast_div_assign
; ;}
3518 /* Line 1455 of yacc.c */
3519 #line 634 "glsl_parser.ypp"
3520 { (yyval
.n
) = ast_mod_assign
; ;}
3525 /* Line 1455 of yacc.c */
3526 #line 635 "glsl_parser.ypp"
3527 { (yyval
.n
) = ast_add_assign
; ;}
3532 /* Line 1455 of yacc.c */
3533 #line 636 "glsl_parser.ypp"
3534 { (yyval
.n
) = ast_sub_assign
; ;}
3539 /* Line 1455 of yacc.c */
3540 #line 637 "glsl_parser.ypp"
3541 { (yyval
.n
) = ast_ls_assign
; ;}
3546 /* Line 1455 of yacc.c */
3547 #line 638 "glsl_parser.ypp"
3548 { (yyval
.n
) = ast_rs_assign
; ;}
3553 /* Line 1455 of yacc.c */
3554 #line 639 "glsl_parser.ypp"
3555 { (yyval
.n
) = ast_and_assign
; ;}
3560 /* Line 1455 of yacc.c */
3561 #line 640 "glsl_parser.ypp"
3562 { (yyval
.n
) = ast_xor_assign
; ;}
3567 /* Line 1455 of yacc.c */
3568 #line 641 "glsl_parser.ypp"
3569 { (yyval
.n
) = ast_or_assign
; ;}
3574 /* Line 1455 of yacc.c */
3575 #line 646 "glsl_parser.ypp"
3577 (yyval
.expression
) = (yyvsp
[(1) - (1)].expression
);
3583 /* Line 1455 of yacc.c */
3584 #line 650 "glsl_parser.ypp"
3587 if ((yyvsp
[(1) - (3)].expression
)->oper
!= ast_sequence
) {
3588 (yyval
.expression
) = new(ctx
) ast_expression(ast_sequence
, NULL
, NULL
, NULL
);
3589 (yyval
.expression
)->set_location(yylloc
);
3590 (yyval
.expression
)->expressions
.push_tail(& (yyvsp
[(1) - (3)].expression
)->link
);
3592 (yyval
.expression
) = (yyvsp
[(1) - (3)].expression
);
3595 (yyval
.expression
)->expressions
.push_tail(& (yyvsp
[(3) - (3)].expression
)->link
);
3601 /* Line 1455 of yacc.c */
3602 #line 670 "glsl_parser.ypp"
3604 (yyval
.node
) = (yyvsp
[(1) - (2)].function
);
3610 /* Line 1455 of yacc.c */
3611 #line 674 "glsl_parser.ypp"
3613 (yyval
.node
) = (yyvsp
[(1) - (2)].declarator_list
);
3619 /* Line 1455 of yacc.c */
3620 #line 678 "glsl_parser.ypp"
3622 if (((yyvsp
[(3) - (4)].type_specifier
)->type_specifier
!= ast_float
)
3623 && ((yyvsp
[(3) - (4)].type_specifier
)->type_specifier
!= ast_int
)) {
3624 _mesa_glsl_error(& (yylsp
[(3) - (4)]), state
, "global precision qualifier can "
3625 "only be applied to `int' or `float'\n");
3629 (yyval
.node
) = NULL
; /* FINISHME */
3635 /* Line 1455 of yacc.c */
3636 #line 701 "glsl_parser.ypp"
3638 (yyval
.function
) = (yyvsp
[(1) - (2)].function
);
3639 (yyval
.function
)->parameters
.push_tail(& (yyvsp
[(2) - (2)].parameter_declarator
)->link
);
3645 /* Line 1455 of yacc.c */
3646 #line 706 "glsl_parser.ypp"
3648 (yyval
.function
) = (yyvsp
[(1) - (3)].function
);
3649 (yyval
.function
)->parameters
.push_tail(& (yyvsp
[(3) - (3)].parameter_declarator
)->link
);
3655 /* Line 1455 of yacc.c */
3656 #line 714 "glsl_parser.ypp"
3659 (yyval
.function
) = new(ctx
) ast_function();
3660 (yyval
.function
)->set_location(yylloc
);
3661 (yyval
.function
)->return_type
= (yyvsp
[(1) - (3)].fully_specified_type
);
3662 (yyval
.function
)->identifier
= (yyvsp
[(2) - (3)].identifier
);
3668 /* Line 1455 of yacc.c */
3669 #line 725 "glsl_parser.ypp"
3672 (yyval
.parameter_declarator
) = new(ctx
) ast_parameter_declarator();
3673 (yyval
.parameter_declarator
)->set_location(yylloc
);
3674 (yyval
.parameter_declarator
)->type
= new(ctx
) ast_fully_specified_type();
3675 (yyval
.parameter_declarator
)->type
->set_location(yylloc
);
3676 (yyval
.parameter_declarator
)->type
->specifier
= (yyvsp
[(1) - (2)].type_specifier
);
3677 (yyval
.parameter_declarator
)->identifier
= (yyvsp
[(2) - (2)].identifier
);
3683 /* Line 1455 of yacc.c */
3684 #line 735 "glsl_parser.ypp"
3687 (yyval
.parameter_declarator
) = new(ctx
) ast_parameter_declarator();
3688 (yyval
.parameter_declarator
)->set_location(yylloc
);
3689 (yyval
.parameter_declarator
)->type
= new(ctx
) ast_fully_specified_type();
3690 (yyval
.parameter_declarator
)->type
->set_location(yylloc
);
3691 (yyval
.parameter_declarator
)->type
->specifier
= (yyvsp
[(1) - (5)].type_specifier
);
3692 (yyval
.parameter_declarator
)->identifier
= (yyvsp
[(2) - (5)].identifier
);
3693 (yyval
.parameter_declarator
)->is_array
= true;
3694 (yyval
.parameter_declarator
)->array_size
= (yyvsp
[(4) - (5)].expression
);
3700 /* Line 1455 of yacc.c */
3701 #line 750 "glsl_parser.ypp"
3703 (yyvsp
[(1) - (3)].type_qualifier
).i
|= (yyvsp
[(2) - (3)].type_qualifier
).i
;
3705 (yyval
.parameter_declarator
) = (yyvsp
[(3) - (3)].parameter_declarator
);
3706 (yyval
.parameter_declarator
)->type
->qualifier
= (yyvsp
[(1) - (3)].type_qualifier
).q
;
3712 /* Line 1455 of yacc.c */
3713 #line 757 "glsl_parser.ypp"
3715 (yyval
.parameter_declarator
) = (yyvsp
[(2) - (2)].parameter_declarator
);
3716 (yyval
.parameter_declarator
)->type
->qualifier
= (yyvsp
[(1) - (2)].type_qualifier
).q
;
3722 /* Line 1455 of yacc.c */
3723 #line 762 "glsl_parser.ypp"
3726 (yyvsp
[(1) - (3)].type_qualifier
).i
|= (yyvsp
[(2) - (3)].type_qualifier
).i
;
3728 (yyval
.parameter_declarator
) = new(ctx
) ast_parameter_declarator();
3729 (yyval
.parameter_declarator
)->set_location(yylloc
);
3730 (yyval
.parameter_declarator
)->type
= new(ctx
) ast_fully_specified_type();
3731 (yyval
.parameter_declarator
)->type
->qualifier
= (yyvsp
[(1) - (3)].type_qualifier
).q
;
3732 (yyval
.parameter_declarator
)->type
->specifier
= (yyvsp
[(3) - (3)].type_specifier
);
3738 /* Line 1455 of yacc.c */
3739 #line 773 "glsl_parser.ypp"
3742 (yyval
.parameter_declarator
) = new(ctx
) ast_parameter_declarator();
3743 (yyval
.parameter_declarator
)->set_location(yylloc
);
3744 (yyval
.parameter_declarator
)->type
= new(ctx
) ast_fully_specified_type();
3745 (yyval
.parameter_declarator
)->type
->qualifier
= (yyvsp
[(1) - (2)].type_qualifier
).q
;
3746 (yyval
.parameter_declarator
)->type
->specifier
= (yyvsp
[(2) - (2)].type_specifier
);
3752 /* Line 1455 of yacc.c */
3753 #line 784 "glsl_parser.ypp"
3754 { (yyval
.type_qualifier
).i
= 0; ;}
3759 /* Line 1455 of yacc.c */
3760 #line 785 "glsl_parser.ypp"
3761 { (yyval
.type_qualifier
).i
= 0; (yyval
.type_qualifier
).q
.in
= 1; ;}
3766 /* Line 1455 of yacc.c */
3767 #line 786 "glsl_parser.ypp"
3768 { (yyval
.type_qualifier
).i
= 0; (yyval
.type_qualifier
).q
.out
= 1; ;}
3773 /* Line 1455 of yacc.c */
3774 #line 787 "glsl_parser.ypp"
3775 { (yyval
.type_qualifier
).i
= 0; (yyval
.type_qualifier
).q
.in
= 1; (yyval
.type_qualifier
).q
.out
= 1; ;}
3780 /* Line 1455 of yacc.c */
3781 #line 797 "glsl_parser.ypp"
3784 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(3) - (3)].identifier
), false, NULL
, NULL
);
3785 decl
->set_location(yylloc
);
3787 (yyval
.declarator_list
) = (yyvsp
[(1) - (3)].declarator_list
);
3788 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3794 /* Line 1455 of yacc.c */
3795 #line 806 "glsl_parser.ypp"
3798 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(3) - (5)].identifier
), true, NULL
, NULL
);
3799 decl
->set_location(yylloc
);
3801 (yyval
.declarator_list
) = (yyvsp
[(1) - (5)].declarator_list
);
3802 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3808 /* Line 1455 of yacc.c */
3809 #line 815 "glsl_parser.ypp"
3812 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(3) - (6)].identifier
), true, (yyvsp
[(5) - (6)].expression
), NULL
);
3813 decl
->set_location(yylloc
);
3815 (yyval
.declarator_list
) = (yyvsp
[(1) - (6)].declarator_list
);
3816 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3822 /* Line 1455 of yacc.c */
3823 #line 824 "glsl_parser.ypp"
3826 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(3) - (7)].identifier
), true, NULL
, (yyvsp
[(7) - (7)].expression
));
3827 decl
->set_location(yylloc
);
3829 (yyval
.declarator_list
) = (yyvsp
[(1) - (7)].declarator_list
);
3830 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3836 /* Line 1455 of yacc.c */
3837 #line 833 "glsl_parser.ypp"
3840 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(3) - (8)].identifier
), true, (yyvsp
[(5) - (8)].expression
), (yyvsp
[(8) - (8)].expression
));
3841 decl
->set_location(yylloc
);
3843 (yyval
.declarator_list
) = (yyvsp
[(1) - (8)].declarator_list
);
3844 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3850 /* Line 1455 of yacc.c */
3851 #line 842 "glsl_parser.ypp"
3854 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(3) - (5)].identifier
), false, NULL
, (yyvsp
[(5) - (5)].expression
));
3855 decl
->set_location(yylloc
);
3857 (yyval
.declarator_list
) = (yyvsp
[(1) - (5)].declarator_list
);
3858 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3864 /* Line 1455 of yacc.c */
3865 #line 855 "glsl_parser.ypp"
3868 if ((yyvsp
[(1) - (1)].fully_specified_type
)->specifier
->type_specifier
!= ast_struct
) {
3869 _mesa_glsl_error(& (yylsp
[(1) - (1)]), state
, "empty declaration list\n");
3872 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list((yyvsp
[(1) - (1)].fully_specified_type
));
3873 (yyval
.declarator_list
)->set_location(yylloc
);
3880 /* Line 1455 of yacc.c */
3881 #line 866 "glsl_parser.ypp"
3884 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(2) - (2)].identifier
), false, NULL
, NULL
);
3886 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list((yyvsp
[(1) - (2)].fully_specified_type
));
3887 (yyval
.declarator_list
)->set_location(yylloc
);
3888 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3894 /* Line 1455 of yacc.c */
3895 #line 875 "glsl_parser.ypp"
3898 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(2) - (4)].identifier
), true, NULL
, NULL
);
3900 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list((yyvsp
[(1) - (4)].fully_specified_type
));
3901 (yyval
.declarator_list
)->set_location(yylloc
);
3902 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3908 /* Line 1455 of yacc.c */
3909 #line 884 "glsl_parser.ypp"
3912 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(2) - (5)].identifier
), true, (yyvsp
[(4) - (5)].expression
), NULL
);
3914 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list((yyvsp
[(1) - (5)].fully_specified_type
));
3915 (yyval
.declarator_list
)->set_location(yylloc
);
3916 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3922 /* Line 1455 of yacc.c */
3923 #line 893 "glsl_parser.ypp"
3926 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(2) - (6)].identifier
), true, NULL
, (yyvsp
[(6) - (6)].expression
));
3928 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list((yyvsp
[(1) - (6)].fully_specified_type
));
3929 (yyval
.declarator_list
)->set_location(yylloc
);
3930 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3936 /* Line 1455 of yacc.c */
3937 #line 902 "glsl_parser.ypp"
3940 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(2) - (7)].identifier
), true, (yyvsp
[(4) - (7)].expression
), (yyvsp
[(7) - (7)].expression
));
3942 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list((yyvsp
[(1) - (7)].fully_specified_type
));
3943 (yyval
.declarator_list
)->set_location(yylloc
);
3944 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3950 /* Line 1455 of yacc.c */
3951 #line 911 "glsl_parser.ypp"
3954 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(2) - (4)].identifier
), false, NULL
, (yyvsp
[(4) - (4)].expression
));
3956 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list((yyvsp
[(1) - (4)].fully_specified_type
));
3957 (yyval
.declarator_list
)->set_location(yylloc
);
3958 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3964 /* Line 1455 of yacc.c */
3965 #line 920 "glsl_parser.ypp"
3968 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(2) - (2)].identifier
), false, NULL
, NULL
);
3970 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list(NULL
);
3971 (yyval
.declarator_list
)->set_location(yylloc
);
3972 (yyval
.declarator_list
)->invariant
= true;
3974 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3980 /* Line 1455 of yacc.c */
3981 #line 934 "glsl_parser.ypp"
3984 (yyval
.fully_specified_type
) = new(ctx
) ast_fully_specified_type();
3985 (yyval
.fully_specified_type
)->set_location(yylloc
);
3986 (yyval
.fully_specified_type
)->specifier
= (yyvsp
[(1) - (1)].type_specifier
);
3992 /* Line 1455 of yacc.c */
3993 #line 941 "glsl_parser.ypp"
3996 (yyval
.fully_specified_type
) = new(ctx
) ast_fully_specified_type();
3997 (yyval
.fully_specified_type
)->set_location(yylloc
);
3998 (yyval
.fully_specified_type
)->qualifier
= (yyvsp
[(1) - (2)].type_qualifier
).q
;
3999 (yyval
.fully_specified_type
)->specifier
= (yyvsp
[(2) - (2)].type_specifier
);
4005 /* Line 1455 of yacc.c */
4006 #line 951 "glsl_parser.ypp"
4007 { (yyval
.type_qualifier
).i
= 0; ;}
4012 /* Line 1455 of yacc.c */
4013 #line 957 "glsl_parser.ypp"
4015 (yyval
.type_qualifier
) = (yyvsp
[(3) - (4)].type_qualifier
);
4021 /* Line 1455 of yacc.c */
4022 #line 965 "glsl_parser.ypp"
4024 (yyval
.type_qualifier
).i
= (yyvsp
[(1) - (3)].type_qualifier
).i
| (yyvsp
[(3) - (3)].type_qualifier
).i
;
4030 /* Line 1455 of yacc.c */
4031 #line 972 "glsl_parser.ypp"
4033 (yyval
.type_qualifier
).i
= 0;
4035 if (state
->ARB_fragment_coord_conventions_enable
) {
4036 bool got_one
= false;
4038 if (strcmp((yyvsp
[(1) - (1)].identifier
), "origin_upper_left") == 0) {
4040 (yyval
.type_qualifier
).q
.origin_upper_left
= 1;
4041 } else if (strcmp((yyvsp
[(1) - (1)].identifier
), "pixel_center_integer") == 0) {
4043 (yyval
.type_qualifier
).q
.pixel_center_integer
= 1;
4046 if (state
->ARB_fragment_coord_conventions_warn
&& got_one
) {
4047 _mesa_glsl_warning(& (yylsp
[(1) - (1)]), state
,
4048 "GL_ARB_fragment_coord_conventions layout "
4049 "identifier `%s' used\n", (yyvsp
[(1) - (1)].identifier
));
4053 /* If the identifier didn't match any known layout identifiers,
4056 if ((yyval
.type_qualifier
).i
== 0) {
4057 _mesa_glsl_error(& (yylsp
[(1) - (1)]), state
, "unrecognized layout identifier "
4058 "`%s'\n", (yyvsp
[(1) - (1)].identifier
));
4066 /* Line 1455 of yacc.c */
4067 #line 1005 "glsl_parser.ypp"
4068 { (yyval
.type_qualifier
).i
= 0; (yyval
.type_qualifier
).q
.smooth
= 1; ;}
4073 /* Line 1455 of yacc.c */
4074 #line 1006 "glsl_parser.ypp"
4075 { (yyval
.type_qualifier
).i
= 0; (yyval
.type_qualifier
).q
.flat
= 1; ;}
4080 /* Line 1455 of yacc.c */
4081 #line 1007 "glsl_parser.ypp"
4082 { (yyval
.type_qualifier
).i
= 0; (yyval
.type_qualifier
).q
.noperspective
= 1; ;}
4087 /* Line 1455 of yacc.c */
4088 #line 1011 "glsl_parser.ypp"
4089 { (yyval
.type_qualifier
).i
= 0; (yyval
.type_qualifier
).q
.constant
= 1; ;}
4094 /* Line 1455 of yacc.c */
4095 #line 1017 "glsl_parser.ypp"
4097 (yyval
.type_qualifier
).i
= (yyvsp
[(1) - (2)].type_qualifier
).i
| (yyvsp
[(2) - (2)].type_qualifier
).i
;
4103 /* Line 1455 of yacc.c */
4104 #line 1021 "glsl_parser.ypp"
4106 (yyval
.type_qualifier
) = (yyvsp
[(2) - (2)].type_qualifier
);
4107 (yyval
.type_qualifier
).q
.invariant
= 1;
4113 /* Line 1455 of yacc.c */
4114 #line 1028 "glsl_parser.ypp"
4115 { (yyval
.type_qualifier
).i
= 0; (yyval
.type_qualifier
).q
.constant
= 1; ;}
4120 /* Line 1455 of yacc.c */
4121 #line 1029 "glsl_parser.ypp"
4122 { (yyval
.type_qualifier
).i
= 0; (yyval
.type_qualifier
).q
.attribute
= 1; ;}
4127 /* Line 1455 of yacc.c */
4128 #line 1030 "glsl_parser.ypp"
4129 { (yyval
.type_qualifier
).i
= (yyvsp
[(1) - (2)].type_qualifier
).i
; (yyval
.type_qualifier
).q
.varying
= 1; ;}
4134 /* Line 1455 of yacc.c */
4135 #line 1031 "glsl_parser.ypp"
4136 { (yyval
.type_qualifier
).i
= 0; (yyval
.type_qualifier
).q
.centroid
= 1; (yyval
.type_qualifier
).q
.varying
= 1; ;}
4141 /* Line 1455 of yacc.c */
4142 #line 1032 "glsl_parser.ypp"
4143 { (yyval
.type_qualifier
).i
= 0; (yyval
.type_qualifier
).q
.in
= 1; ;}
4148 /* Line 1455 of yacc.c */
4149 #line 1033 "glsl_parser.ypp"
4150 { (yyval
.type_qualifier
).i
= 0; (yyval
.type_qualifier
).q
.out
= 1; ;}
4155 /* Line 1455 of yacc.c */
4156 #line 1034 "glsl_parser.ypp"
4157 { (yyval
.type_qualifier
).i
= 0; (yyval
.type_qualifier
).q
.centroid
= 1; (yyval
.type_qualifier
).q
.in
= 1; ;}
4162 /* Line 1455 of yacc.c */
4163 #line 1035 "glsl_parser.ypp"
4164 { (yyval
.type_qualifier
).i
= 0; (yyval
.type_qualifier
).q
.centroid
= 1; (yyval
.type_qualifier
).q
.out
= 1; ;}
4169 /* Line 1455 of yacc.c */
4170 #line 1036 "glsl_parser.ypp"
4171 { (yyval
.type_qualifier
).i
= 0; (yyval
.type_qualifier
).q
.uniform
= 1; ;}
4176 /* Line 1455 of yacc.c */
4177 #line 1042 "glsl_parser.ypp"
4179 (yyval
.type_specifier
) = (yyvsp
[(2) - (2)].type_specifier
);
4180 (yyval
.type_specifier
)->precision
= (yyvsp
[(1) - (2)].n
);
4186 /* Line 1455 of yacc.c */
4187 #line 1051 "glsl_parser.ypp"
4189 (yyval
.type_specifier
) = (yyvsp
[(1) - (3)].type_specifier
);
4190 (yyval
.type_specifier
)->is_array
= true;
4191 (yyval
.type_specifier
)->array_size
= NULL
;
4197 /* Line 1455 of yacc.c */
4198 #line 1057 "glsl_parser.ypp"
4200 (yyval
.type_specifier
) = (yyvsp
[(1) - (4)].type_specifier
);
4201 (yyval
.type_specifier
)->is_array
= true;
4202 (yyval
.type_specifier
)->array_size
= (yyvsp
[(3) - (4)].expression
);
4208 /* Line 1455 of yacc.c */
4209 #line 1066 "glsl_parser.ypp"
4212 (yyval
.type_specifier
) = new(ctx
) ast_type_specifier((yyvsp
[(1) - (1)].n
));
4213 (yyval
.type_specifier
)->set_location(yylloc
);
4219 /* Line 1455 of yacc.c */
4220 #line 1072 "glsl_parser.ypp"
4223 (yyval
.type_specifier
) = new(ctx
) ast_type_specifier((yyvsp
[(1) - (1)].struct_specifier
));
4224 (yyval
.type_specifier
)->set_location(yylloc
);
4230 /* Line 1455 of yacc.c */
4231 #line 1078 "glsl_parser.ypp"
4234 (yyval
.type_specifier
) = new(ctx
) ast_type_specifier((yyvsp
[(1) - (1)].identifier
));
4235 (yyval
.type_specifier
)->set_location(yylloc
);
4241 /* Line 1455 of yacc.c */
4242 #line 1086 "glsl_parser.ypp"
4243 { (yyval
.n
) = ast_void
; ;}
4248 /* Line 1455 of yacc.c */
4249 #line 1087 "glsl_parser.ypp"
4250 { (yyval
.n
) = ast_float
; ;}
4255 /* Line 1455 of yacc.c */
4256 #line 1088 "glsl_parser.ypp"
4257 { (yyval
.n
) = ast_int
; ;}
4262 /* Line 1455 of yacc.c */
4263 #line 1089 "glsl_parser.ypp"
4264 { (yyval
.n
) = ast_uint
; ;}
4269 /* Line 1455 of yacc.c */
4270 #line 1090 "glsl_parser.ypp"
4271 { (yyval
.n
) = ast_bool
; ;}
4276 /* Line 1455 of yacc.c */
4277 #line 1091 "glsl_parser.ypp"
4278 { (yyval
.n
) = ast_vec2
; ;}
4283 /* Line 1455 of yacc.c */
4284 #line 1092 "glsl_parser.ypp"
4285 { (yyval
.n
) = ast_vec3
; ;}
4290 /* Line 1455 of yacc.c */
4291 #line 1093 "glsl_parser.ypp"
4292 { (yyval
.n
) = ast_vec4
; ;}
4297 /* Line 1455 of yacc.c */
4298 #line 1094 "glsl_parser.ypp"
4299 { (yyval
.n
) = ast_bvec2
; ;}
4304 /* Line 1455 of yacc.c */
4305 #line 1095 "glsl_parser.ypp"
4306 { (yyval
.n
) = ast_bvec3
; ;}
4311 /* Line 1455 of yacc.c */
4312 #line 1096 "glsl_parser.ypp"
4313 { (yyval
.n
) = ast_bvec4
; ;}
4318 /* Line 1455 of yacc.c */
4319 #line 1097 "glsl_parser.ypp"
4320 { (yyval
.n
) = ast_ivec2
; ;}
4325 /* Line 1455 of yacc.c */
4326 #line 1098 "glsl_parser.ypp"
4327 { (yyval
.n
) = ast_ivec3
; ;}
4332 /* Line 1455 of yacc.c */
4333 #line 1099 "glsl_parser.ypp"
4334 { (yyval
.n
) = ast_ivec4
; ;}
4339 /* Line 1455 of yacc.c */
4340 #line 1100 "glsl_parser.ypp"
4341 { (yyval
.n
) = ast_uvec2
; ;}
4346 /* Line 1455 of yacc.c */
4347 #line 1101 "glsl_parser.ypp"
4348 { (yyval
.n
) = ast_uvec3
; ;}
4353 /* Line 1455 of yacc.c */
4354 #line 1102 "glsl_parser.ypp"
4355 { (yyval
.n
) = ast_uvec4
; ;}
4360 /* Line 1455 of yacc.c */
4361 #line 1103 "glsl_parser.ypp"
4362 { (yyval
.n
) = ast_mat2
; ;}
4367 /* Line 1455 of yacc.c */
4368 #line 1104 "glsl_parser.ypp"
4369 { (yyval
.n
) = ast_mat3
; ;}
4374 /* Line 1455 of yacc.c */
4375 #line 1105 "glsl_parser.ypp"
4376 { (yyval
.n
) = ast_mat4
; ;}
4381 /* Line 1455 of yacc.c */
4382 #line 1106 "glsl_parser.ypp"
4383 { (yyval
.n
) = ast_mat2
; ;}
4388 /* Line 1455 of yacc.c */
4389 #line 1107 "glsl_parser.ypp"
4390 { (yyval
.n
) = ast_mat2x3
; ;}
4395 /* Line 1455 of yacc.c */
4396 #line 1108 "glsl_parser.ypp"
4397 { (yyval
.n
) = ast_mat2x4
; ;}
4402 /* Line 1455 of yacc.c */
4403 #line 1109 "glsl_parser.ypp"
4404 { (yyval
.n
) = ast_mat3x2
; ;}
4409 /* Line 1455 of yacc.c */
4410 #line 1110 "glsl_parser.ypp"
4411 { (yyval
.n
) = ast_mat3
; ;}
4416 /* Line 1455 of yacc.c */
4417 #line 1111 "glsl_parser.ypp"
4418 { (yyval
.n
) = ast_mat3x4
; ;}
4423 /* Line 1455 of yacc.c */
4424 #line 1112 "glsl_parser.ypp"
4425 { (yyval
.n
) = ast_mat4x2
; ;}
4430 /* Line 1455 of yacc.c */
4431 #line 1113 "glsl_parser.ypp"
4432 { (yyval
.n
) = ast_mat4x3
; ;}
4437 /* Line 1455 of yacc.c */
4438 #line 1114 "glsl_parser.ypp"
4439 { (yyval
.n
) = ast_mat4
; ;}
4444 /* Line 1455 of yacc.c */
4445 #line 1115 "glsl_parser.ypp"
4446 { (yyval
.n
) = ast_sampler1d
; ;}
4451 /* Line 1455 of yacc.c */
4452 #line 1116 "glsl_parser.ypp"
4453 { (yyval
.n
) = ast_sampler2d
; ;}
4458 /* Line 1455 of yacc.c */
4459 #line 1117 "glsl_parser.ypp"
4460 { (yyval
.n
) = ast_sampler2drect
; ;}
4465 /* Line 1455 of yacc.c */
4466 #line 1118 "glsl_parser.ypp"
4467 { (yyval
.n
) = ast_sampler3d
; ;}
4472 /* Line 1455 of yacc.c */
4473 #line 1119 "glsl_parser.ypp"
4474 { (yyval
.n
) = ast_samplercube
; ;}
4479 /* Line 1455 of yacc.c */
4480 #line 1120 "glsl_parser.ypp"
4481 { (yyval
.n
) = ast_sampler1dshadow
; ;}
4486 /* Line 1455 of yacc.c */
4487 #line 1121 "glsl_parser.ypp"
4488 { (yyval
.n
) = ast_sampler2dshadow
; ;}
4493 /* Line 1455 of yacc.c */
4494 #line 1122 "glsl_parser.ypp"
4495 { (yyval
.n
) = ast_sampler2drectshadow
; ;}
4500 /* Line 1455 of yacc.c */
4501 #line 1123 "glsl_parser.ypp"
4502 { (yyval
.n
) = ast_samplercubeshadow
; ;}
4507 /* Line 1455 of yacc.c */
4508 #line 1124 "glsl_parser.ypp"
4509 { (yyval
.n
) = ast_sampler1darray
; ;}
4514 /* Line 1455 of yacc.c */
4515 #line 1125 "glsl_parser.ypp"
4516 { (yyval
.n
) = ast_sampler2darray
; ;}
4521 /* Line 1455 of yacc.c */
4522 #line 1126 "glsl_parser.ypp"
4523 { (yyval
.n
) = ast_sampler1darrayshadow
; ;}
4528 /* Line 1455 of yacc.c */
4529 #line 1127 "glsl_parser.ypp"
4530 { (yyval
.n
) = ast_sampler2darrayshadow
; ;}
4535 /* Line 1455 of yacc.c */
4536 #line 1128 "glsl_parser.ypp"
4537 { (yyval
.n
) = ast_isampler1d
; ;}
4542 /* Line 1455 of yacc.c */
4543 #line 1129 "glsl_parser.ypp"
4544 { (yyval
.n
) = ast_isampler2d
; ;}
4549 /* Line 1455 of yacc.c */
4550 #line 1130 "glsl_parser.ypp"
4551 { (yyval
.n
) = ast_isampler3d
; ;}
4556 /* Line 1455 of yacc.c */
4557 #line 1131 "glsl_parser.ypp"
4558 { (yyval
.n
) = ast_isamplercube
; ;}
4563 /* Line 1455 of yacc.c */
4564 #line 1132 "glsl_parser.ypp"
4565 { (yyval
.n
) = ast_isampler1darray
; ;}
4570 /* Line 1455 of yacc.c */
4571 #line 1133 "glsl_parser.ypp"
4572 { (yyval
.n
) = ast_isampler2darray
; ;}
4577 /* Line 1455 of yacc.c */
4578 #line 1134 "glsl_parser.ypp"
4579 { (yyval
.n
) = ast_usampler1d
; ;}
4584 /* Line 1455 of yacc.c */
4585 #line 1135 "glsl_parser.ypp"
4586 { (yyval
.n
) = ast_usampler2d
; ;}
4591 /* Line 1455 of yacc.c */
4592 #line 1136 "glsl_parser.ypp"
4593 { (yyval
.n
) = ast_usampler3d
; ;}
4598 /* Line 1455 of yacc.c */
4599 #line 1137 "glsl_parser.ypp"
4600 { (yyval
.n
) = ast_usamplercube
; ;}
4605 /* Line 1455 of yacc.c */
4606 #line 1138 "glsl_parser.ypp"
4607 { (yyval
.n
) = ast_usampler1darray
; ;}
4612 /* Line 1455 of yacc.c */
4613 #line 1139 "glsl_parser.ypp"
4614 { (yyval
.n
) = ast_usampler2darray
; ;}
4619 /* Line 1455 of yacc.c */
4620 #line 1143 "glsl_parser.ypp"
4622 if (state
->language_version
< 130)
4623 _mesa_glsl_error(& (yylsp
[(1) - (1)]), state
,
4624 "precision qualifier forbidden "
4625 "in GLSL %d.%d (1.30 or later "
4627 state
->language_version
/ 100,
4628 state
->language_version
% 100);
4630 (yyval
.n
) = ast_precision_high
;
4636 /* Line 1455 of yacc.c */
4637 #line 1154 "glsl_parser.ypp"
4639 if (state
->language_version
< 130)
4640 _mesa_glsl_error(& (yylsp
[(1) - (1)]), state
,
4641 "precision qualifier forbidden "
4642 "in GLSL %d.%d (1.30 or later "
4644 state
->language_version
/ 100,
4645 state
->language_version
% 100);
4647 (yyval
.n
) = ast_precision_medium
;
4653 /* Line 1455 of yacc.c */
4654 #line 1165 "glsl_parser.ypp"
4656 if (state
->language_version
< 130)
4657 _mesa_glsl_error(& (yylsp
[(1) - (1)]), state
,
4658 "precision qualifier forbidden "
4659 "in GLSL %d.%d (1.30 or later "
4661 state
->language_version
/ 100,
4662 state
->language_version
% 100);
4664 (yyval
.n
) = ast_precision_low
;
4670 /* Line 1455 of yacc.c */
4671 #line 1180 "glsl_parser.ypp"
4674 (yyval
.struct_specifier
) = new(ctx
) ast_struct_specifier((yyvsp
[(2) - (5)].identifier
), (yyvsp
[(4) - (5)].node
));
4675 (yyval
.struct_specifier
)->set_location(yylloc
);
4681 /* Line 1455 of yacc.c */
4682 #line 1186 "glsl_parser.ypp"
4685 (yyval
.struct_specifier
) = new(ctx
) ast_struct_specifier(NULL
, (yyvsp
[(3) - (4)].node
));
4686 (yyval
.struct_specifier
)->set_location(yylloc
);
4692 /* Line 1455 of yacc.c */
4693 #line 1195 "glsl_parser.ypp"
4695 (yyval
.node
) = (struct ast_node
*) (yyvsp
[(1) - (1)].declarator_list
);
4696 (yyvsp
[(1) - (1)].declarator_list
)->link
.self_link();
4702 /* Line 1455 of yacc.c */
4703 #line 1200 "glsl_parser.ypp"
4705 (yyval
.node
) = (struct ast_node
*) (yyvsp
[(1) - (2)].node
);
4706 (yyval
.node
)->link
.insert_before(& (yyvsp
[(2) - (2)].declarator_list
)->link
);
4712 /* Line 1455 of yacc.c */
4713 #line 1208 "glsl_parser.ypp"
4716 ast_fully_specified_type
*type
= new(ctx
) ast_fully_specified_type();
4717 type
->set_location(yylloc
);
4719 type
->specifier
= (yyvsp
[(1) - (3)].type_specifier
);
4720 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list(type
);
4721 (yyval
.declarator_list
)->set_location(yylloc
);
4723 (yyval
.declarator_list
)->declarations
.push_degenerate_list_at_head(& (yyvsp
[(2) - (3)].declaration
)->link
);
4729 /* Line 1455 of yacc.c */
4730 #line 1223 "glsl_parser.ypp"
4732 (yyval
.declaration
) = (yyvsp
[(1) - (1)].declaration
);
4733 (yyvsp
[(1) - (1)].declaration
)->link
.self_link();
4739 /* Line 1455 of yacc.c */
4740 #line 1228 "glsl_parser.ypp"
4742 (yyval
.declaration
) = (yyvsp
[(1) - (3)].declaration
);
4743 (yyval
.declaration
)->link
.insert_before(& (yyvsp
[(3) - (3)].declaration
)->link
);
4749 /* Line 1455 of yacc.c */
4750 #line 1236 "glsl_parser.ypp"
4753 (yyval
.declaration
) = new(ctx
) ast_declaration((yyvsp
[(1) - (1)].identifier
), false, NULL
, NULL
);
4754 (yyval
.declaration
)->set_location(yylloc
);
4760 /* Line 1455 of yacc.c */
4761 #line 1242 "glsl_parser.ypp"
4764 (yyval
.declaration
) = new(ctx
) ast_declaration((yyvsp
[(1) - (4)].identifier
), true, (yyvsp
[(3) - (4)].expression
), NULL
);
4765 (yyval
.declaration
)->set_location(yylloc
);
4771 /* Line 1455 of yacc.c */
4772 #line 1265 "glsl_parser.ypp"
4773 { (yyval
.node
) = (struct ast_node
*) (yyvsp
[(1) - (1)].compound_statement
); ;}
4778 /* Line 1455 of yacc.c */
4779 #line 1277 "glsl_parser.ypp"
4780 { (yyval
.node
) = NULL
; ;}
4785 /* Line 1455 of yacc.c */
4786 #line 1278 "glsl_parser.ypp"
4787 { (yyval
.node
) = NULL
; ;}
4792 /* Line 1455 of yacc.c */
4793 #line 1285 "glsl_parser.ypp"
4796 (yyval
.compound_statement
) = new(ctx
) ast_compound_statement(true, NULL
);
4797 (yyval
.compound_statement
)->set_location(yylloc
);
4803 /* Line 1455 of yacc.c */
4804 #line 1291 "glsl_parser.ypp"
4807 (yyval
.compound_statement
) = new(ctx
) ast_compound_statement(true, (yyvsp
[(2) - (3)].node
));
4808 (yyval
.compound_statement
)->set_location(yylloc
);
4814 /* Line 1455 of yacc.c */
4815 #line 1299 "glsl_parser.ypp"
4816 { (yyval
.node
) = (struct ast_node
*) (yyvsp
[(1) - (1)].compound_statement
); ;}
4821 /* Line 1455 of yacc.c */
4822 #line 1305 "glsl_parser.ypp"
4825 (yyval
.compound_statement
) = new(ctx
) ast_compound_statement(false, NULL
);
4826 (yyval
.compound_statement
)->set_location(yylloc
);
4832 /* Line 1455 of yacc.c */
4833 #line 1311 "glsl_parser.ypp"
4836 (yyval
.compound_statement
) = new(ctx
) ast_compound_statement(false, (yyvsp
[(2) - (3)].node
));
4837 (yyval
.compound_statement
)->set_location(yylloc
);
4843 /* Line 1455 of yacc.c */
4844 #line 1320 "glsl_parser.ypp"
4846 if ((yyvsp
[(1) - (1)].node
) == NULL
) {
4847 _mesa_glsl_error(& (yylsp
[(1) - (1)]), state
, "<nil> statement\n");
4848 assert((yyvsp
[(1) - (1)].node
) != NULL
);
4851 (yyval
.node
) = (yyvsp
[(1) - (1)].node
);
4852 (yyval
.node
)->link
.self_link();
4858 /* Line 1455 of yacc.c */
4859 #line 1330 "glsl_parser.ypp"
4861 if ((yyvsp
[(2) - (2)].node
) == NULL
) {
4862 _mesa_glsl_error(& (yylsp
[(2) - (2)]), state
, "<nil> statement\n");
4863 assert((yyvsp
[(2) - (2)].node
) != NULL
);
4865 (yyval
.node
) = (yyvsp
[(1) - (2)].node
);
4866 (yyval
.node
)->link
.insert_before(& (yyvsp
[(2) - (2)].node
)->link
);
4872 /* Line 1455 of yacc.c */
4873 #line 1342 "glsl_parser.ypp"
4876 (yyval
.node
) = new(ctx
) ast_expression_statement(NULL
);
4877 (yyval
.node
)->set_location(yylloc
);
4883 /* Line 1455 of yacc.c */
4884 #line 1348 "glsl_parser.ypp"
4887 (yyval
.node
) = new(ctx
) ast_expression_statement((yyvsp
[(1) - (2)].expression
));
4888 (yyval
.node
)->set_location(yylloc
);
4894 /* Line 1455 of yacc.c */
4895 #line 1357 "glsl_parser.ypp"
4898 (yyval
.node
) = new(ctx
) ast_selection_statement((yyvsp
[(3) - (7)].expression
), (yyvsp
[(5) - (7)].node
), (yyvsp
[(7) - (7)].node
));
4899 (yyval
.node
)->set_location(yylloc
);
4905 /* Line 1455 of yacc.c */
4906 #line 1366 "glsl_parser.ypp"
4909 (yyval
.node
) = new(ctx
) ast_selection_statement((yyvsp
[(3) - (5)].expression
), (yyvsp
[(5) - (5)].node
), NULL
);
4910 (yyval
.node
)->set_location(yylloc
);
4916 /* Line 1455 of yacc.c */
4917 #line 1372 "glsl_parser.ypp"
4920 (yyval
.node
) = new(ctx
) ast_selection_statement((yyvsp
[(3) - (5)].expression
), (yyvsp
[(5) - (5)].node
), NULL
);
4921 (yyval
.node
)->set_location(yylloc
);
4927 /* Line 1455 of yacc.c */
4928 #line 1378 "glsl_parser.ypp"
4931 (yyval
.node
) = new(ctx
) ast_selection_statement((yyvsp
[(3) - (7)].expression
), (yyvsp
[(5) - (7)].node
), (yyvsp
[(7) - (7)].node
));
4932 (yyval
.node
)->set_location(yylloc
);
4938 /* Line 1455 of yacc.c */
4939 #line 1387 "glsl_parser.ypp"
4941 (yyval
.node
) = (struct ast_node
*) (yyvsp
[(1) - (1)].expression
);
4947 /* Line 1455 of yacc.c */
4948 #line 1391 "glsl_parser.ypp"
4951 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(2) - (4)].identifier
), false, NULL
, (yyvsp
[(4) - (4)].expression
));
4952 ast_declarator_list
*declarator
= new(ctx
) ast_declarator_list((yyvsp
[(1) - (4)].fully_specified_type
));
4953 decl
->set_location(yylloc
);
4954 declarator
->set_location(yylloc
);
4956 declarator
->declarations
.push_tail(&decl
->link
);
4957 (yyval
.node
) = declarator
;
4963 /* Line 1455 of yacc.c */
4964 #line 1414 "glsl_parser.ypp"
4967 (yyval
.node
) = new(ctx
) ast_iteration_statement(ast_iteration_statement::ast_while
,
4968 NULL
, (yyvsp
[(3) - (5)].node
), NULL
, (yyvsp
[(5) - (5)].node
));
4969 (yyval
.node
)->set_location(yylloc
);
4975 /* Line 1455 of yacc.c */
4976 #line 1421 "glsl_parser.ypp"
4979 (yyval
.node
) = new(ctx
) ast_iteration_statement(ast_iteration_statement::ast_do_while
,
4980 NULL
, (yyvsp
[(5) - (7)].expression
), NULL
, (yyvsp
[(2) - (7)].node
));
4981 (yyval
.node
)->set_location(yylloc
);
4987 /* Line 1455 of yacc.c */
4988 #line 1428 "glsl_parser.ypp"
4991 (yyval
.node
) = new(ctx
) ast_iteration_statement(ast_iteration_statement::ast_for
,
4992 (yyvsp
[(3) - (6)].node
), (yyvsp
[(4) - (6)].for_rest_statement
).cond
, (yyvsp
[(4) - (6)].for_rest_statement
).rest
, (yyvsp
[(6) - (6)].node
));
4993 (yyval
.node
)->set_location(yylloc
);
4999 /* Line 1455 of yacc.c */
5000 #line 1444 "glsl_parser.ypp"
5002 (yyval
.node
) = NULL
;
5008 /* Line 1455 of yacc.c */
5009 #line 1451 "glsl_parser.ypp"
5011 (yyval
.for_rest_statement
).cond
= (yyvsp
[(1) - (2)].node
);
5012 (yyval
.for_rest_statement
).rest
= NULL
;
5018 /* Line 1455 of yacc.c */
5019 #line 1456 "glsl_parser.ypp"
5021 (yyval
.for_rest_statement
).cond
= (yyvsp
[(1) - (3)].node
);
5022 (yyval
.for_rest_statement
).rest
= (yyvsp
[(3) - (3)].expression
);
5028 /* Line 1455 of yacc.c */
5029 #line 1465 "glsl_parser.ypp"
5032 (yyval
.node
) = new(ctx
) ast_jump_statement(ast_jump_statement::ast_continue
, NULL
);
5033 (yyval
.node
)->set_location(yylloc
);
5039 /* Line 1455 of yacc.c */
5040 #line 1471 "glsl_parser.ypp"
5043 (yyval
.node
) = new(ctx
) ast_jump_statement(ast_jump_statement::ast_break
, NULL
);
5044 (yyval
.node
)->set_location(yylloc
);
5050 /* Line 1455 of yacc.c */
5051 #line 1477 "glsl_parser.ypp"
5054 (yyval
.node
) = new(ctx
) ast_jump_statement(ast_jump_statement::ast_return
, NULL
);
5055 (yyval
.node
)->set_location(yylloc
);
5061 /* Line 1455 of yacc.c */
5062 #line 1483 "glsl_parser.ypp"
5065 (yyval
.node
) = new(ctx
) ast_jump_statement(ast_jump_statement::ast_return
, (yyvsp
[(2) - (3)].expression
));
5066 (yyval
.node
)->set_location(yylloc
);
5072 /* Line 1455 of yacc.c */
5073 #line 1489 "glsl_parser.ypp"
5076 (yyval
.node
) = new(ctx
) ast_jump_statement(ast_jump_statement::ast_discard
, NULL
);
5077 (yyval
.node
)->set_location(yylloc
);
5083 /* Line 1455 of yacc.c */
5084 #line 1497 "glsl_parser.ypp"
5085 { (yyval
.node
) = (yyvsp
[(1) - (1)].function_definition
); ;}
5090 /* Line 1455 of yacc.c */
5091 #line 1498 "glsl_parser.ypp"
5092 { (yyval
.node
) = (yyvsp
[(1) - (1)].node
); ;}
5097 /* Line 1455 of yacc.c */
5098 #line 1503 "glsl_parser.ypp"
5101 (yyval
.function_definition
) = new(ctx
) ast_function_definition();
5102 (yyval
.function_definition
)->set_location(yylloc
);
5103 (yyval
.function_definition
)->prototype
= (yyvsp
[(1) - (2)].function
);
5104 (yyval
.function_definition
)->body
= (yyvsp
[(2) - (2)].compound_statement
);
5110 /* Line 1455 of yacc.c */
5111 #line 5112 "glsl_parser.cpp"
5114 YY_SYMBOL_PRINT ("-> $$ =", yyr1
[yyn
], &yyval
, &yyloc
);
5118 YY_STACK_PRINT (yyss
, yyssp
);
5123 /* Now `shift' the result of the reduction. Determine what state
5124 that goes to, based on the state we popped back to and the rule
5125 number reduced by. */
5129 yystate
= yypgoto
[yyn
- YYNTOKENS
] + *yyssp
;
5130 if (0 <= yystate
&& yystate
<= YYLAST
&& yycheck
[yystate
] == *yyssp
)
5131 yystate
= yytable
[yystate
];
5133 yystate
= yydefgoto
[yyn
- YYNTOKENS
];
5138 /*------------------------------------.
5139 | yyerrlab -- here on detecting error |
5140 `------------------------------------*/
5142 /* If not already recovering from an error, report this error. */
5146 #if ! YYERROR_VERBOSE
5147 yyerror (&yylloc
, state
, YY_("syntax error"));
5150 YYSIZE_T yysize
= yysyntax_error (0, yystate
, yychar
);
5151 if (yymsg_alloc
< yysize
&& yymsg_alloc
< YYSTACK_ALLOC_MAXIMUM
)
5153 YYSIZE_T yyalloc
= 2 * yysize
;
5154 if (! (yysize
<= yyalloc
&& yyalloc
<= YYSTACK_ALLOC_MAXIMUM
))
5155 yyalloc
= YYSTACK_ALLOC_MAXIMUM
;
5156 if (yymsg
!= yymsgbuf
)
5157 YYSTACK_FREE (yymsg
);
5158 yymsg
= (char *) YYSTACK_ALLOC (yyalloc
);
5160 yymsg_alloc
= yyalloc
;
5164 yymsg_alloc
= sizeof yymsgbuf
;
5168 if (0 < yysize
&& yysize
<= yymsg_alloc
)
5170 (void) yysyntax_error (yymsg
, yystate
, yychar
);
5171 yyerror (&yylloc
, state
, yymsg
);
5175 yyerror (&yylloc
, state
, YY_("syntax error"));
5177 goto yyexhaustedlab
;
5183 yyerror_range
[0] = yylloc
;
5185 if (yyerrstatus
== 3)
5187 /* If just tried and failed to reuse lookahead token after an
5188 error, discard it. */
5190 if (yychar
<= YYEOF
)
5192 /* Return failure if at end of input. */
5193 if (yychar
== YYEOF
)
5198 yydestruct ("Error: discarding",
5199 yytoken
, &yylval
, &yylloc
, state
);
5204 /* Else will try to reuse lookahead token after shifting the error
5209 /*---------------------------------------------------.
5210 | yyerrorlab -- error raised explicitly by YYERROR. |
5211 `---------------------------------------------------*/
5214 /* Pacify compilers like GCC when the user code never invokes
5215 YYERROR and the label yyerrorlab therefore never appears in user
5217 if (/*CONSTCOND*/ 0)
5220 yyerror_range
[0] = yylsp
[1-yylen
];
5221 /* Do not reclaim the symbols of the rule which action triggered
5225 YY_STACK_PRINT (yyss
, yyssp
);
5230 /*-------------------------------------------------------------.
5231 | yyerrlab1 -- common code for both syntax error and YYERROR. |
5232 `-------------------------------------------------------------*/
5234 yyerrstatus
= 3; /* Each real token shifted decrements this. */
5238 yyn
= yypact
[yystate
];
5239 if (yyn
!= YYPACT_NINF
)
5242 if (0 <= yyn
&& yyn
<= YYLAST
&& yycheck
[yyn
] == YYTERROR
)
5250 /* Pop the current state because it cannot handle the error token. */
5254 yyerror_range
[0] = *yylsp
;
5255 yydestruct ("Error: popping",
5256 yystos
[yystate
], yyvsp
, yylsp
, state
);
5259 YY_STACK_PRINT (yyss
, yyssp
);
5264 yyerror_range
[1] = yylloc
;
5265 /* Using YYLLOC is tempting, but would change the location of
5266 the lookahead. YYLOC is available though. */
5267 YYLLOC_DEFAULT (yyloc
, (yyerror_range
- 1), 2);
5270 /* Shift the error token. */
5271 YY_SYMBOL_PRINT ("Shifting", yystos
[yyn
], yyvsp
, yylsp
);
5277 /*-------------------------------------.
5278 | yyacceptlab -- YYACCEPT comes here. |
5279 `-------------------------------------*/
5284 /*-----------------------------------.
5285 | yyabortlab -- YYABORT comes here. |
5286 `-----------------------------------*/
5291 #if !defined(yyoverflow) || YYERROR_VERBOSE
5292 /*-------------------------------------------------.
5293 | yyexhaustedlab -- memory exhaustion comes here. |
5294 `-------------------------------------------------*/
5296 yyerror (&yylloc
, state
, YY_("memory exhausted"));
5302 if (yychar
!= YYEMPTY
)
5303 yydestruct ("Cleanup: discarding lookahead",
5304 yytoken
, &yylval
, &yylloc
, state
);
5305 /* Do not reclaim the symbols of the rule which action triggered
5306 this YYABORT or YYACCEPT. */
5308 YY_STACK_PRINT (yyss
, yyssp
);
5309 while (yyssp
!= yyss
)
5311 yydestruct ("Cleanup: popping",
5312 yystos
[*yyssp
], yyvsp
, yylsp
, state
);
5317 YYSTACK_FREE (yyss
);
5320 if (yymsg
!= yymsgbuf
)
5321 YYSTACK_FREE (yymsg
);
5323 /* Make sure YYID is used. */
5324 return YYID (yyresult
);