1 /* A Bison parser, made by GNU Bison 2.4.3. */
3 /* Skeleton implementation for Bison's Yacc-like parsers in C
5 Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
6 2009, 2010 Free Software Foundation, Inc.
8 This program is free software: you can redistribute it and/or modify
9 it under the terms of the GNU General Public License as published by
10 the Free Software Foundation, either version 3 of the License, or
11 (at your option) any later version.
13 This program is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details.
18 You should have received a copy of the GNU General Public License
19 along with this program. If not, see <http://www.gnu.org/licenses/>. */
21 /* As a special exception, you may create a larger work that contains
22 part or all of the Bison parser skeleton and distribute that work
23 under terms of your choice, so long as that work isn't itself a
24 parser generator using the skeleton or a modified version thereof
25 as a parser skeleton. Alternatively, if you modify or redistribute
26 the parser skeleton itself, you may (at your option) remove this
27 special exception, which will cause the skeleton and the resulting
28 Bison output files to be licensed under the GNU General Public
29 License without this special exception.
31 This special exception was added by the Free Software Foundation in
32 version 2.2 of Bison. */
34 /* C LALR(1) parser skeleton written by Richard Stallman, by
35 simplifying the original so-called "semantic" parser. */
37 /* All symbols defined below should begin with yy or YY, to avoid
38 infringing on user name space. This should be done even for local
39 variables, as they might otherwise be expanded by user macros.
40 There are some unavoidable exceptions within include files to
41 define necessary library symbols; they are noted "INFRINGES ON
42 USER NAME SPACE" below. */
44 /* Identify Bison output. */
48 #define YYBISON_VERSION "2.4.3"
51 #define YYSKELETON_NAME "yacc.c"
62 /* Using locations. */
63 #define YYLSP_NEEDED 1
65 /* Substitute the variable and function names. */
66 #define yyparse _mesa_glsl_parse
67 #define yylex _mesa_glsl_lex
68 #define yyerror _mesa_glsl_error
69 #define yylval _mesa_glsl_lval
70 #define yychar _mesa_glsl_char
71 #define yydebug _mesa_glsl_debug
72 #define yynerrs _mesa_glsl_nerrs
73 #define yylloc _mesa_glsl_lloc
75 /* Copy the first part of user declarations. */
77 /* Line 189 of yacc.c */
78 #line 1 "glsl_parser.ypp"
81 * Copyright © 2008, 2009 Intel Corporation
83 * Permission is hereby granted, free of charge, to any person obtaining a
84 * copy of this software and associated documentation files (the "Software"),
85 * to deal in the Software without restriction, including without limitation
86 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
87 * and/or sell copies of the Software, and to permit persons to whom the
88 * Software is furnished to do so, subject to the following conditions:
90 * The above copyright notice and this permission notice (including the next
91 * paragraph) shall be included in all copies or substantial portions of the
94 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
95 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
96 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
97 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
98 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
99 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
100 * DEALINGS IN THE SOFTWARE.
108 #include "glsl_parser_extras.h"
109 #include "glsl_types.h"
111 #define YYLEX_PARAM state->scanner
115 /* Line 189 of yacc.c */
116 #line 117 "glsl_parser.cpp"
118 /* Enabling traces. */
123 /* Enabling verbose error messages. */
124 #ifdef YYERROR_VERBOSE
125 # undef YYERROR_VERBOSE
126 # define YYERROR_VERBOSE 1
128 # define YYERROR_VERBOSE 1
131 /* Enabling the token table. */
132 #ifndef YYTOKEN_TABLE
133 # define YYTOKEN_TABLE 0
140 /* Put the tokens into the symbol table, so that GDB and other debuggers
194 SAMPLER1DSHADOW
= 309,
195 SAMPLER2DSHADOW
= 310,
196 SAMPLERCUBESHADOW
= 311,
197 SAMPLER1DARRAY
= 312,
198 SAMPLER2DARRAY
= 313,
199 SAMPLER1DARRAYSHADOW
= 314,
200 SAMPLER2DARRAYSHADOW
= 315,
205 ISAMPLER1DARRAY
= 320,
206 ISAMPLER2DARRAY
= 321,
211 USAMPLER1DARRAY
= 326,
212 USAMPLER2DARRAY
= 327,
221 FIELD_SELECTION
= 336,
293 SAMPLER2DRECTSHADOW
= 408,
333 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
334 typedef union YYSTYPE
337 /* Line 214 of yacc.c */
338 #line 52 "glsl_parser.ypp"
345 struct ast_type_qualifier q
;
350 ast_type_specifier
*type_specifier
;
351 ast_fully_specified_type
*fully_specified_type
;
352 ast_function
*function
;
353 ast_parameter_declarator
*parameter_declarator
;
354 ast_function_definition
*function_definition
;
355 ast_compound_statement
*compound_statement
;
356 ast_expression
*expression
;
357 ast_declarator_list
*declarator_list
;
358 ast_struct_specifier
*struct_specifier
;
359 ast_declaration
*declaration
;
363 ast_expression
*rest
;
364 } for_rest_statement
;
368 /* Line 214 of yacc.c */
369 #line 370 "glsl_parser.cpp"
371 # define YYSTYPE_IS_TRIVIAL 1
372 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
373 # define YYSTYPE_IS_DECLARED 1
376 #if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED
377 typedef struct YYLTYPE
384 # define yyltype YYLTYPE /* obsolescent; will be withdrawn */
385 # define YYLTYPE_IS_DECLARED 1
386 # define YYLTYPE_IS_TRIVIAL 1
390 /* Copy the second part of user declarations. */
393 /* Line 264 of yacc.c */
394 #line 395 "glsl_parser.cpp"
401 typedef YYTYPE_UINT8 yytype_uint8
;
403 typedef unsigned char yytype_uint8
;
407 typedef YYTYPE_INT8 yytype_int8
;
408 #elif (defined __STDC__ || defined __C99__FUNC__ \
409 || defined __cplusplus || defined _MSC_VER)
410 typedef signed char yytype_int8
;
412 typedef short int yytype_int8
;
416 typedef YYTYPE_UINT16 yytype_uint16
;
418 typedef unsigned short int yytype_uint16
;
422 typedef YYTYPE_INT16 yytype_int16
;
424 typedef short int yytype_int16
;
428 # ifdef __SIZE_TYPE__
429 # define YYSIZE_T __SIZE_TYPE__
430 # elif defined size_t
431 # define YYSIZE_T size_t
432 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
433 || defined __cplusplus || defined _MSC_VER)
434 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
435 # define YYSIZE_T size_t
437 # define YYSIZE_T unsigned int
441 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
444 # if defined YYENABLE_NLS && YYENABLE_NLS
446 # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
447 # define YY_(msgid) dgettext ("bison-runtime", msgid)
451 # define YY_(msgid) msgid
455 /* Suppress unused-variable warnings by "using" E. */
456 #if ! defined lint || defined __GNUC__
457 # define YYUSE(e) ((void) (e))
459 # define YYUSE(e) /* empty */
462 /* Identity function, used to suppress warnings about constant conditions. */
466 #if (defined __STDC__ || defined __C99__FUNC__ \
467 || defined __cplusplus || defined _MSC_VER)
480 #if ! defined yyoverflow || YYERROR_VERBOSE
482 /* The parser invokes alloca or malloc; define the necessary symbols. */
484 # ifdef YYSTACK_USE_ALLOCA
485 # if YYSTACK_USE_ALLOCA
487 # define YYSTACK_ALLOC __builtin_alloca
488 # elif defined __BUILTIN_VA_ARG_INCR
489 # include <alloca.h> /* INFRINGES ON USER NAME SPACE */
491 # define YYSTACK_ALLOC __alloca
492 # elif defined _MSC_VER
493 # include <malloc.h> /* INFRINGES ON USER NAME SPACE */
494 # define alloca _alloca
496 # define YYSTACK_ALLOC alloca
497 # if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
498 || defined __cplusplus || defined _MSC_VER)
499 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
508 # ifdef YYSTACK_ALLOC
509 /* Pacify GCC's `empty if-body' warning. */
510 # define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
511 # ifndef YYSTACK_ALLOC_MAXIMUM
512 /* The OS might guarantee only one guard page at the bottom of the stack,
513 and a page size can be as small as 4096 bytes. So we cannot safely
514 invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
515 to allow for a few compiler-allocated temporary stack slots. */
516 # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
519 # define YYSTACK_ALLOC YYMALLOC
520 # define YYSTACK_FREE YYFREE
521 # ifndef YYSTACK_ALLOC_MAXIMUM
522 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
524 # if (defined __cplusplus && ! defined _STDLIB_H \
525 && ! ((defined YYMALLOC || defined malloc) \
526 && (defined YYFREE || defined free)))
527 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
533 # define YYMALLOC malloc
534 # if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
535 || defined __cplusplus || defined _MSC_VER)
536 void *malloc (YYSIZE_T
); /* INFRINGES ON USER NAME SPACE */
541 # if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
542 || defined __cplusplus || defined _MSC_VER)
543 void free (void *); /* INFRINGES ON USER NAME SPACE */
547 #endif /* ! defined yyoverflow || YYERROR_VERBOSE */
550 #if (! defined yyoverflow \
551 && (! defined __cplusplus \
552 || (defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL \
553 && defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
555 /* A type that is properly aligned for any stack member. */
558 yytype_int16 yyss_alloc
;
563 /* The size of the maximum gap between one aligned stack and the next. */
564 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
566 /* The size of an array large to enough to hold all stacks, each with
568 # define YYSTACK_BYTES(N) \
569 ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \
570 + 2 * YYSTACK_GAP_MAXIMUM)
572 /* Copy COUNT objects from FROM to TO. The source and destination do
575 # if defined __GNUC__ && 1 < __GNUC__
576 # define YYCOPY(To, From, Count) \
577 __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
579 # define YYCOPY(To, From, Count) \
583 for (yyi = 0; yyi < (Count); yyi++) \
584 (To)[yyi] = (From)[yyi]; \
590 /* Relocate STACK from its old location to the new one. The
591 local variables YYSIZE and YYSTACKSIZE give the old and new number of
592 elements in the stack, and YYPTR gives the new location of the
593 stack. Advance YYPTR to a properly aligned location for the next
595 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \
598 YYSIZE_T yynewbytes; \
599 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
600 Stack = &yyptr->Stack_alloc; \
601 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
602 yyptr += yynewbytes / sizeof (*yyptr); \
608 /* YYFINAL -- State number of the termination state. */
610 /* YYLAST -- Last index in YYTABLE. */
613 /* YYNTOKENS -- Number of terminals. */
614 #define YYNTOKENS 212
615 /* YYNNTS -- Number of nonterminals. */
617 /* YYNRULES -- Number of rules. */
619 /* YYNRULES -- Number of states. */
620 #define YYNSTATES 410
622 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
624 #define YYMAXUTOK 442
626 #define YYTRANSLATE(YYX) \
627 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
629 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
630 static const yytype_uint8 yytranslate
[] =
632 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
633 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
634 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
635 2, 2, 2, 196, 2, 2, 2, 200, 203, 2,
636 188, 189, 198, 194, 193, 195, 192, 199, 2, 2,
637 2, 2, 2, 2, 2, 2, 2, 2, 207, 209,
638 201, 208, 202, 206, 2, 2, 2, 2, 2, 2,
639 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
640 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
641 2, 190, 2, 191, 204, 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, 2, 2, 210, 205, 211, 197, 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, 2, 2, 2, 2, 2, 2, 2,
648 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
649 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
650 2, 2, 2, 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, 1, 2, 3, 4,
658 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
659 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
660 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
661 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
662 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
663 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
664 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
665 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
666 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
667 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
668 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
669 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
670 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
671 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
672 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
673 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
674 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
675 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
680 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
682 static const yytype_uint16 yyprhs
[] =
684 0, 0, 3, 4, 9, 10, 14, 15, 18, 24,
685 26, 29, 31, 33, 35, 37, 39, 41, 45, 47,
686 52, 54, 58, 61, 64, 66, 68, 70, 74, 77,
687 80, 83, 85, 88, 92, 95, 97, 99, 101, 103,
688 106, 109, 112, 114, 116, 118, 120, 122, 126, 130,
689 134, 136, 140, 144, 146, 150, 154, 156, 160, 164,
690 168, 172, 174, 178, 182, 184, 188, 190, 194, 196,
691 200, 202, 206, 208, 212, 214, 218, 220, 226, 228,
692 232, 234, 236, 238, 240, 242, 244, 246, 248, 250,
693 252, 254, 256, 260, 262, 265, 268, 273, 276, 278,
694 280, 283, 287, 291, 294, 300, 304, 307, 311, 314,
695 315, 317, 319, 321, 323, 325, 329, 335, 342, 350,
696 359, 365, 367, 370, 375, 381, 388, 396, 401, 404,
697 406, 409, 410, 412, 417, 419, 423, 425, 427, 429,
698 431, 433, 435, 438, 441, 443, 445, 448, 451, 454,
699 456, 459, 462, 464, 466, 469, 471, 475, 480, 482,
700 484, 486, 488, 490, 492, 494, 496, 498, 500, 502,
701 504, 506, 508, 510, 512, 514, 516, 518, 520, 522,
702 524, 526, 528, 530, 532, 534, 536, 538, 540, 542,
703 544, 546, 548, 550, 552, 554, 556, 558, 560, 562,
704 564, 566, 568, 570, 572, 574, 576, 578, 580, 582,
705 584, 586, 588, 590, 592, 594, 600, 605, 607, 610,
706 614, 616, 620, 622, 627, 629, 631, 633, 635, 637,
707 639, 641, 643, 645, 647, 649, 651, 653, 655, 658,
708 662, 664, 666, 669, 673, 675, 678, 680, 683, 691,
709 697, 703, 711, 713, 718, 724, 728, 731, 737, 745,
710 752, 754, 756, 758, 759, 762, 766, 769, 772, 775,
714 /* YYRHS -- A `-1'-separated list of the rules' RHS. */
715 static const yytype_int16 yyrhs
[] =
717 213, 0, -1, -1, 215, 216, 214, 218, -1, -1,
718 109, 78, 114, -1, -1, 216, 217, -1, 110, 76,
719 113, 76, 114, -1, 299, -1, 218, 299, -1, 76,
720 -1, 219, -1, 78, -1, 79, -1, 77, -1, 80,
721 -1, 188, 246, 189, -1, 220, -1, 221, 190, 222,
722 191, -1, 223, -1, 221, 192, 76, -1, 221, 84,
723 -1, 221, 85, -1, 246, -1, 224, -1, 225, -1,
724 221, 192, 225, -1, 227, 189, -1, 226, 189, -1,
725 228, 74, -1, 228, -1, 228, 244, -1, 227, 193,
726 244, -1, 229, 188, -1, 268, -1, 76, -1, 81,
727 -1, 221, -1, 84, 230, -1, 85, 230, -1, 231,
728 230, -1, 194, -1, 195, -1, 196, -1, 197, -1,
729 230, -1, 232, 198, 230, -1, 232, 199, 230, -1,
730 232, 200, 230, -1, 232, -1, 233, 194, 232, -1,
731 233, 195, 232, -1, 233, -1, 234, 82, 233, -1,
732 234, 83, 233, -1, 234, -1, 235, 201, 234, -1,
733 235, 202, 234, -1, 235, 86, 234, -1, 235, 87,
734 234, -1, 235, -1, 236, 88, 235, -1, 236, 89,
735 235, -1, 236, -1, 237, 203, 236, -1, 237, -1,
736 238, 204, 237, -1, 238, -1, 239, 205, 238, -1,
737 239, -1, 240, 90, 239, -1, 240, -1, 241, 92,
738 240, -1, 241, -1, 242, 91, 241, -1, 242, -1,
739 242, 206, 246, 207, 244, -1, 243, -1, 230, 245,
740 244, -1, 208, -1, 93, -1, 94, -1, 96, -1,
741 95, -1, 102, -1, 97, -1, 98, -1, 99, -1,
742 100, -1, 101, -1, 244, -1, 246, 193, 244, -1,
743 243, -1, 249, 209, -1, 257, 209, -1, 108, 272,
744 269, 209, -1, 250, 189, -1, 252, -1, 251, -1,
745 252, 254, -1, 251, 193, 254, -1, 259, 76, 188,
746 -1, 268, 76, -1, 268, 76, 190, 247, 191, -1,
747 265, 255, 253, -1, 255, 253, -1, 265, 255, 256,
748 -1, 255, 256, -1, -1, 33, -1, 34, -1, 35,
749 -1, 268, -1, 258, -1, 257, 193, 76, -1, 257,
750 193, 76, 190, 191, -1, 257, 193, 76, 190, 247,
751 191, -1, 257, 193, 76, 190, 191, 208, 278, -1,
752 257, 193, 76, 190, 247, 191, 208, 278, -1, 257,
753 193, 76, 208, 278, -1, 259, -1, 259, 76, -1,
754 259, 76, 190, 191, -1, 259, 76, 190, 247, 191,
755 -1, 259, 76, 190, 191, 208, 278, -1, 259, 76,
756 190, 247, 191, 208, 278, -1, 259, 76, 208, 278,
757 -1, 103, 76, -1, 268, -1, 266, 268, -1, -1,
758 261, -1, 117, 188, 262, 189, -1, 263, -1, 262,
759 193, 263, -1, 76, -1, 40, -1, 39, -1, 38,
760 -1, 4, -1, 267, -1, 264, 266, -1, 103, 266,
761 -1, 4, -1, 3, -1, 260, 37, -1, 32, 37,
762 -1, 260, 33, -1, 34, -1, 32, 33, -1, 32,
763 34, -1, 36, -1, 269, -1, 272, 269, -1, 270,
764 -1, 270, 190, 191, -1, 270, 190, 247, 191, -1,
765 271, -1, 273, -1, 76, -1, 74, -1, 6, -1,
766 7, -1, 8, -1, 5, -1, 29, -1, 30, -1,
767 31, -1, 20, -1, 21, -1, 22, -1, 23, -1,
768 24, -1, 25, -1, 26, -1, 27, -1, 28, -1,
769 41, -1, 42, -1, 43, -1, 44, -1, 45, -1,
770 46, -1, 47, -1, 48, -1, 49, -1, 50, -1,
771 51, -1, 151, -1, 52, -1, 53, -1, 54, -1,
772 55, -1, 153, -1, 56, -1, 57, -1, 58, -1,
773 59, -1, 60, -1, 61, -1, 62, -1, 63, -1,
774 64, -1, 65, -1, 66, -1, 67, -1, 68, -1,
775 69, -1, 70, -1, 71, -1, 72, -1, 106, -1,
776 105, -1, 104, -1, 73, 76, 210, 274, 211, -1,
777 73, 210, 274, 211, -1, 275, -1, 274, 275, -1,
778 268, 276, 209, -1, 277, -1, 276, 193, 277, -1,
779 76, -1, 76, 190, 247, 191, -1, 244, -1, 248,
780 -1, 281, -1, 282, -1, 284, -1, 283, -1, 290,
781 -1, 279, -1, 288, -1, 289, -1, 292, -1, 293,
782 -1, 294, -1, 298, -1, 210, 211, -1, 210, 287,
783 211, -1, 286, -1, 283, -1, 210, 211, -1, 210,
784 287, 211, -1, 280, -1, 287, 280, -1, 209, -1,
785 246, 209, -1, 14, 188, 246, 189, 281, 12, 281,
786 -1, 14, 188, 246, 189, 281, -1, 14, 188, 246,
787 189, 282, -1, 14, 188, 246, 189, 281, 12, 282,
788 -1, 246, -1, 259, 76, 208, 278, -1, 17, 188,
789 246, 189, 284, -1, 18, 246, 207, -1, 19, 207,
790 -1, 75, 188, 291, 189, 285, -1, 11, 280, 75,
791 188, 246, 189, 209, -1, 13, 188, 295, 297, 189,
792 285, -1, 288, -1, 279, -1, 291, -1, -1, 296,
793 209, -1, 296, 209, 246, -1, 10, 209, -1, 9,
794 209, -1, 16, 209, -1, 16, 246, 209, -1, 15,
795 209, -1, 300, -1, 248, -1, 249, 286, -1
798 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
799 static const yytype_uint16 yyrline
[] =
801 0, 209, 209, 208, 217, 221, 239, 241, 245, 254,
802 262, 273, 277, 284, 291, 298, 305, 312, 319, 320,
803 326, 330, 337, 343, 352, 356, 360, 361, 370, 371,
804 375, 376, 380, 386, 398, 402, 408, 415, 426, 427,
805 433, 439, 449, 450, 451, 452, 456, 457, 463, 469,
806 478, 479, 485, 494, 495, 501, 510, 511, 517, 523,
807 529, 538, 539, 545, 554, 555, 564, 565, 574, 575,
808 584, 585, 594, 595, 604, 605, 614, 615, 624, 625,
809 634, 635, 636, 637, 638, 639, 640, 641, 642, 643,
810 644, 648, 652, 668, 672, 676, 680, 694, 698, 699,
811 703, 708, 716, 727, 737, 752, 759, 764, 775, 787,
812 788, 789, 790, 794, 798, 799, 808, 817, 826, 835,
813 844, 857, 868, 877, 886, 895, 904, 913, 922, 936,
814 943, 954, 955, 959, 966, 967, 974, 1008, 1009, 1010,
815 1014, 1018, 1019, 1023, 1031, 1032, 1033, 1034, 1035, 1036,
816 1037, 1038, 1039, 1043, 1044, 1052, 1053, 1059, 1068, 1074,
817 1080, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097,
818 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107,
819 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117,
820 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127,
821 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137,
822 1138, 1139, 1143, 1154, 1165, 1179, 1185, 1194, 1199, 1207,
823 1222, 1227, 1235, 1241, 1250, 1254, 1260, 1261, 1265, 1266,
824 1270, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1284, 1290,
825 1299, 1300, 1304, 1310, 1319, 1329, 1341, 1347, 1356, 1365,
826 1371, 1377, 1386, 1390, 1404, 1408, 1409, 1413, 1420, 1427,
827 1437, 1438, 1442, 1444, 1450, 1455, 1464, 1470, 1476, 1482,
828 1488, 1497, 1498, 1502
832 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
833 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
834 First, the terminals, then, starting at YYNTOKENS, nonterminals. */
835 static const char *const yytname
[] =
837 "$end", "error", "$undefined", "ATTRIBUTE", "CONST_TOK", "BOOL_TOK",
838 "FLOAT_TOK", "INT_TOK", "UINT_TOK", "BREAK", "CONTINUE", "DO", "ELSE",
839 "FOR", "IF", "DISCARD", "RETURN", "SWITCH", "CASE", "DEFAULT", "BVEC2",
840 "BVEC3", "BVEC4", "IVEC2", "IVEC3", "IVEC4", "UVEC2", "UVEC3", "UVEC4",
841 "VEC2", "VEC3", "VEC4", "CENTROID", "IN_TOK", "OUT_TOK", "INOUT_TOK",
842 "UNIFORM", "VARYING", "NOPERSPECTIVE", "FLAT", "SMOOTH", "MAT2X2",
843 "MAT2X3", "MAT2X4", "MAT3X2", "MAT3X3", "MAT3X4", "MAT4X2", "MAT4X3",
844 "MAT4X4", "SAMPLER1D", "SAMPLER2D", "SAMPLER3D", "SAMPLERCUBE",
845 "SAMPLER1DSHADOW", "SAMPLER2DSHADOW", "SAMPLERCUBESHADOW",
846 "SAMPLER1DARRAY", "SAMPLER2DARRAY", "SAMPLER1DARRAYSHADOW",
847 "SAMPLER2DARRAYSHADOW", "ISAMPLER1D", "ISAMPLER2D", "ISAMPLER3D",
848 "ISAMPLERCUBE", "ISAMPLER1DARRAY", "ISAMPLER2DARRAY", "USAMPLER1D",
849 "USAMPLER2D", "USAMPLER3D", "USAMPLERCUBE", "USAMPLER1DARRAY",
850 "USAMPLER2DARRAY", "STRUCT", "VOID_TOK", "WHILE", "IDENTIFIER",
851 "FLOATCONSTANT", "INTCONSTANT", "UINTCONSTANT", "BOOLCONSTANT",
852 "FIELD_SELECTION", "LEFT_OP", "RIGHT_OP", "INC_OP", "DEC_OP", "LE_OP",
853 "GE_OP", "EQ_OP", "NE_OP", "AND_OP", "OR_OP", "XOR_OP", "MUL_ASSIGN",
854 "DIV_ASSIGN", "ADD_ASSIGN", "MOD_ASSIGN", "LEFT_ASSIGN", "RIGHT_ASSIGN",
855 "AND_ASSIGN", "XOR_ASSIGN", "OR_ASSIGN", "SUB_ASSIGN", "INVARIANT",
856 "LOWP", "MEDIUMP", "HIGHP", "SUPERP", "PRECISION", "VERSION",
857 "EXTENSION", "LINE", "PRAGMA", "COLON", "EOL", "INTERFACE", "OUTPUT",
858 "LAYOUT_TOK", "ASM", "CLASS", "UNION", "ENUM", "TYPEDEF", "TEMPLATE",
859 "THIS", "PACKED_TOK", "GOTO", "INLINE_TOK", "NOINLINE", "VOLATILE",
860 "PUBLIC_TOK", "STATIC", "EXTERN", "EXTERNAL", "LONG_TOK", "SHORT_TOK",
861 "DOUBLE_TOK", "HALF", "FIXED_TOK", "UNSIGNED", "INPUT_TOK", "OUPTUT",
862 "HVEC2", "HVEC3", "HVEC4", "DVEC2", "DVEC3", "DVEC4", "FVEC2", "FVEC3",
863 "FVEC4", "SAMPLER2DRECT", "SAMPLER3DRECT", "SAMPLER2DRECTSHADOW",
864 "SIZEOF", "CAST", "NAMESPACE", "USING", "ERROR_TOK", "COMMON",
865 "PARTITION", "ACTIVE", "SAMPLERBUFFER", "FILTER", "IMAGE1D", "IMAGE2D",
866 "IMAGE3D", "IMAGECUBE", "IMAGE1DARRAY", "IMAGE2DARRAY", "IIMAGE1D",
867 "IIMAGE2D", "IIMAGE3D", "IIMAGECUBE", "IIMAGE1DARRAY", "IIMAGE2DARRAY",
868 "UIMAGE1D", "UIMAGE2D", "UIMAGE3D", "UIMAGECUBE", "UIMAGE1DARRAY",
869 "UIMAGE2DARRAY", "IMAGE1DSHADOW", "IMAGE2DSHADOW", "IMAGEBUFFER",
870 "IIMAGEBUFFER", "UIMAGEBUFFER", "ROW_MAJOR", "'('", "')'", "'['", "']'",
871 "'.'", "','", "'+'", "'-'", "'!'", "'~'", "'*'", "'/'", "'%'", "'<'",
872 "'>'", "'&'", "'^'", "'|'", "'?'", "':'", "'='", "';'", "'{'", "'}'",
873 "$accept", "translation_unit", "$@1", "version_statement",
874 "extension_statement_list", "extension_statement",
875 "external_declaration_list", "variable_identifier", "primary_expression",
876 "postfix_expression", "integer_expression", "function_call",
877 "function_call_or_method", "function_call_generic",
878 "function_call_header_no_parameters",
879 "function_call_header_with_parameters", "function_call_header",
880 "function_identifier", "unary_expression", "unary_operator",
881 "multiplicative_expression", "additive_expression", "shift_expression",
882 "relational_expression", "equality_expression", "and_expression",
883 "exclusive_or_expression", "inclusive_or_expression",
884 "logical_and_expression", "logical_xor_expression",
885 "logical_or_expression", "conditional_expression",
886 "assignment_expression", "assignment_operator", "expression",
887 "constant_expression", "declaration", "function_prototype",
888 "function_declarator", "function_header_with_parameters",
889 "function_header", "parameter_declarator", "parameter_declaration",
890 "parameter_qualifier", "parameter_type_specifier",
891 "init_declarator_list", "single_declaration", "fully_specified_type",
892 "opt_layout_qualifier", "layout_qualifier", "layout_qualifier_id_list",
893 "layout_qualifier_id", "interpolation_qualifier",
894 "parameter_type_qualifier", "type_qualifier", "storage_qualifier",
895 "type_specifier", "type_specifier_no_prec", "type_specifier_nonarray",
896 "basic_type_specifier_nonarray", "precision_qualifier",
897 "struct_specifier", "struct_declaration_list", "struct_declaration",
898 "struct_declarator_list", "struct_declarator", "initializer",
899 "declaration_statement", "statement", "statement_matched",
900 "statement_unmatched", "simple_statement", "compound_statement",
901 "statement_no_new_scope", "compound_statement_no_new_scope",
902 "statement_list", "expression_statement", "selection_statement_matched",
903 "selection_statement_unmatched", "condition", "switch_statement",
904 "case_label", "iteration_statement", "for_init_statement",
905 "conditionopt", "for_rest_statement", "jump_statement",
906 "external_declaration", "function_definition", 0
911 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
913 static const yytype_uint16 yytoknum
[] =
915 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
916 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
917 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
918 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
919 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
920 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
921 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
922 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
923 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
924 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
925 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
926 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
927 375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
928 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
929 395, 396, 397, 398, 399, 400, 401, 402, 403, 404,
930 405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
931 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
932 425, 426, 427, 428, 429, 430, 431, 432, 433, 434,
933 435, 436, 437, 438, 439, 440, 441, 442, 40, 41,
934 91, 93, 46, 44, 43, 45, 33, 126, 42, 47,
935 37, 60, 62, 38, 94, 124, 63, 58, 61, 59,
940 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
941 static const yytype_uint16 yyr1
[] =
943 0, 212, 214, 213, 215, 215, 216, 216, 217, 218,
944 218, 219, 220, 220, 220, 220, 220, 220, 221, 221,
945 221, 221, 221, 221, 222, 223, 224, 224, 225, 225,
946 226, 226, 227, 227, 228, 229, 229, 229, 230, 230,
947 230, 230, 231, 231, 231, 231, 232, 232, 232, 232,
948 233, 233, 233, 234, 234, 234, 235, 235, 235, 235,
949 235, 236, 236, 236, 237, 237, 238, 238, 239, 239,
950 240, 240, 241, 241, 242, 242, 243, 243, 244, 244,
951 245, 245, 245, 245, 245, 245, 245, 245, 245, 245,
952 245, 246, 246, 247, 248, 248, 248, 249, 250, 250,
953 251, 251, 252, 253, 253, 254, 254, 254, 254, 255,
954 255, 255, 255, 256, 257, 257, 257, 257, 257, 257,
955 257, 258, 258, 258, 258, 258, 258, 258, 258, 259,
956 259, 260, 260, 261, 262, 262, 263, 264, 264, 264,
957 265, 266, 266, 266, 267, 267, 267, 267, 267, 267,
958 267, 267, 267, 268, 268, 269, 269, 269, 270, 270,
959 270, 271, 271, 271, 271, 271, 271, 271, 271, 271,
960 271, 271, 271, 271, 271, 271, 271, 271, 271, 271,
961 271, 271, 271, 271, 271, 271, 271, 271, 271, 271,
962 271, 271, 271, 271, 271, 271, 271, 271, 271, 271,
963 271, 271, 271, 271, 271, 271, 271, 271, 271, 271,
964 271, 271, 272, 272, 272, 273, 273, 274, 274, 275,
965 276, 276, 277, 277, 278, 279, 280, 280, 281, 281,
966 282, 283, 283, 283, 283, 283, 283, 283, 284, 284,
967 285, 285, 286, 286, 287, 287, 288, 288, 289, 290,
968 290, 290, 291, 291, 292, 293, 293, 294, 294, 294,
969 295, 295, 296, 296, 297, 297, 298, 298, 298, 298,
973 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
974 static const yytype_uint8 yyr2
[] =
976 0, 2, 0, 4, 0, 3, 0, 2, 5, 1,
977 2, 1, 1, 1, 1, 1, 1, 3, 1, 4,
978 1, 3, 2, 2, 1, 1, 1, 3, 2, 2,
979 2, 1, 2, 3, 2, 1, 1, 1, 1, 2,
980 2, 2, 1, 1, 1, 1, 1, 3, 3, 3,
981 1, 3, 3, 1, 3, 3, 1, 3, 3, 3,
982 3, 1, 3, 3, 1, 3, 1, 3, 1, 3,
983 1, 3, 1, 3, 1, 3, 1, 5, 1, 3,
984 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
985 1, 1, 3, 1, 2, 2, 4, 2, 1, 1,
986 2, 3, 3, 2, 5, 3, 2, 3, 2, 0,
987 1, 1, 1, 1, 1, 3, 5, 6, 7, 8,
988 5, 1, 2, 4, 5, 6, 7, 4, 2, 1,
989 2, 0, 1, 4, 1, 3, 1, 1, 1, 1,
990 1, 1, 2, 2, 1, 1, 2, 2, 2, 1,
991 2, 2, 1, 1, 2, 1, 3, 4, 1, 1,
992 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
993 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
994 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
995 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
996 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
997 1, 1, 1, 1, 1, 5, 4, 1, 2, 3,
998 1, 3, 1, 4, 1, 1, 1, 1, 1, 1,
999 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
1000 1, 1, 2, 3, 1, 2, 1, 2, 7, 5,
1001 5, 7, 1, 4, 5, 3, 2, 5, 7, 6,
1002 1, 1, 1, 0, 2, 3, 2, 2, 2, 3,
1006 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
1007 STATE-NUM when YYTABLE doesn't specify something else to do. Zero
1008 means the default is an error. */
1009 static const yytype_uint16 yydefact
[] =
1011 4, 0, 0, 6, 0, 1, 2, 5, 0, 131,
1012 7, 0, 145, 144, 165, 162, 163, 164, 169, 170,
1013 171, 172, 173, 174, 175, 176, 177, 166, 167, 168,
1014 0, 149, 152, 139, 138, 137, 178, 179, 180, 181,
1015 182, 183, 184, 185, 186, 187, 188, 190, 191, 192,
1016 193, 195, 196, 197, 198, 199, 200, 201, 202, 203,
1017 204, 205, 206, 207, 208, 209, 210, 211, 0, 161,
1018 160, 131, 214, 213, 212, 0, 0, 189, 194, 131,
1019 272, 0, 0, 99, 109, 0, 114, 121, 0, 132,
1020 131, 0, 141, 129, 153, 155, 158, 0, 159, 9,
1021 271, 0, 150, 151, 147, 0, 0, 128, 131, 143,
1022 0, 0, 10, 94, 131, 273, 97, 109, 140, 110,
1023 111, 112, 100, 0, 109, 0, 95, 122, 148, 146,
1024 142, 130, 0, 154, 0, 0, 0, 0, 217, 0,
1025 136, 0, 134, 0, 0, 131, 0, 0, 0, 0,
1026 0, 0, 0, 0, 11, 15, 13, 14, 16, 37,
1027 0, 0, 0, 42, 43, 44, 45, 246, 131, 242,
1028 12, 18, 38, 20, 25, 26, 0, 0, 31, 0,
1029 46, 0, 50, 53, 56, 61, 64, 66, 68, 70,
1030 72, 74, 76, 78, 91, 0, 225, 0, 129, 231,
1031 244, 226, 227, 229, 228, 131, 232, 233, 230, 234,
1032 235, 236, 237, 101, 106, 108, 113, 0, 115, 102,
1033 0, 0, 156, 46, 93, 0, 35, 8, 0, 222,
1034 0, 220, 216, 218, 96, 133, 0, 267, 266, 0,
1035 131, 0, 270, 268, 0, 0, 0, 256, 131, 39,
1036 40, 0, 238, 131, 22, 23, 0, 0, 29, 28,
1037 0, 161, 32, 34, 81, 82, 84, 83, 86, 87,
1038 88, 89, 90, 85, 80, 0, 41, 0, 0, 0,
1039 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1040 0, 0, 0, 0, 0, 0, 0, 0, 247, 243,
1041 245, 103, 105, 107, 0, 0, 123, 0, 224, 127,
1042 157, 215, 0, 0, 219, 135, 0, 261, 260, 131,
1043 0, 269, 0, 255, 252, 0, 0, 17, 239, 0,
1044 24, 21, 27, 33, 79, 47, 48, 49, 51, 52,
1045 54, 55, 59, 60, 57, 58, 62, 63, 65, 67,
1046 69, 71, 73, 75, 0, 92, 0, 116, 0, 120,
1047 0, 124, 0, 221, 0, 262, 0, 0, 131, 0,
1048 0, 131, 19, 0, 0, 0, 117, 125, 0, 223,
1049 0, 264, 131, 249, 250, 254, 0, 0, 241, 257,
1050 240, 77, 104, 118, 0, 126, 0, 265, 259, 131,
1051 253, 0, 119, 258, 248, 251, 0, 131, 0, 131
1054 /* YYDEFGOTO[NTERM-NUM]. */
1055 static const yytype_int16 yydefgoto
[] =
1057 -1, 2, 9, 3, 6, 10, 79, 170, 171, 172,
1058 329, 173, 174, 175, 176, 177, 178, 179, 180, 181,
1059 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
1060 192, 193, 194, 275, 195, 225, 196, 197, 82, 83,
1061 84, 214, 122, 123, 215, 85, 86, 87, 88, 89,
1062 141, 142, 90, 124, 91, 92, 226, 94, 95, 96,
1063 97, 98, 137, 138, 230, 231, 309, 199, 200, 201,
1064 202, 203, 204, 389, 390, 205, 206, 207, 208, 326,
1065 209, 210, 211, 319, 366, 367, 212, 99, 100
1068 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1070 #define YYPACT_NINF -345
1071 static const yytype_int16 yypact
[] =
1073 -30, 29, 120, -345, 15, -345, 22, -345, 59, 3758,
1074 -345, 25, -345, -345, -345, -345, -345, -345, -345, -345,
1075 -345, -345, -345, -345, -345, -345, -345, -345, -345, -345,
1076 79, -345, -345, -345, -345, -345, -345, -345, -345, -345,
1077 -345, -345, -345, -345, -345, -345, -345, -345, -345, -345,
1078 -345, -345, -345, -345, -345, -345, -345, -345, -345, -345,
1079 -345, -345, -345, -345, -345, -345, -345, -345, -71, -345,
1080 -345, 130, -345, -345, -345, -79, -42, -345, -345, 3642,
1081 -345, -5, -38, -32, 4, -181, -345, 87, 62, -345,
1082 27, 3871, -345, -345, -345, -25, -345, 3943, -345, -345,
1083 -345, 91, -345, -345, -345, -37, 3871, -345, 27, -345,
1084 3943, 95, -345, -345, 398, -345, -345, 19, -345, -345,
1085 -345, -345, -345, 3871, 0, 119, -345, -128, -345, -345,
1086 -345, -345, 2752, -345, 86, 3871, 131, 2153, -345, 11,
1087 -345, -87, -345, 21, 23, 1234, 40, 50, 36, 2379,
1088 63, 3286, 43, 64, -73, -345, -345, -345, -345, -345,
1089 3286, 3286, 3286, -345, -345, -345, -345, -345, 607, -345,
1090 -345, -345, -67, -345, -345, -345, 78, -62, 3464, 80,
1091 -53, 3286, -1, 20, 140, -80, 136, 66, 67, 65,
1092 182, 181, -82, -345, -345, -173, -345, 103, 125, -345,
1093 -345, -345, -345, -345, -345, 816, -345, -345, -345, -345,
1094 -345, -345, -345, -345, -345, -345, 198, 3871, -140, -345,
1095 2930, 3286, -345, -345, -345, 84, -345, -345, 2266, 124,
1096 -137, -345, -345, -345, -345, -345, 95, -345, -345, 240,
1097 1845, 3286, -345, -345, -118, 3286, -120, -345, 2574, -345,
1098 -345, -48, -345, 1025, -345, -345, 3286, 235, -345, -345,
1099 3286, 128, -345, -345, -345, -345, -345, -345, -345, -345,
1100 -345, -345, -345, -345, -345, 3286, -345, 3286, 3286, 3286,
1101 3286, 3286, 3286, 3286, 3286, 3286, 3286, 3286, 3286, 3286,
1102 3286, 3286, 3286, 3286, 3286, 3286, 3286, 3286, -345, -345,
1103 -345, 129, -345, -345, 3108, 3286, 110, 132, -345, -345,
1104 -345, -345, 3286, 131, -345, -345, 133, -345, -345, 2040,
1105 -46, -345, -36, -345, 127, 246, 135, -345, -345, 134,
1106 127, 138, -345, -345, -345, -345, -345, -345, -1, -1,
1107 20, 20, 140, 140, 140, 140, -80, -80, 136, 66,
1108 67, 65, 182, 181, -117, -345, 3286, 121, 137, -345,
1109 3286, 122, 141, -345, 3286, -345, 118, 142, 1234, 123,
1110 126, 1442, -345, 3286, 144, 3286, 139, -345, 3286, -345,
1111 -35, 3286, 1442, 324, -345, -345, 3286, 149, -345, -345,
1112 -345, -345, -345, -345, 3286, -345, 143, 127, -345, 1234,
1113 -345, 3286, -345, -345, -345, -345, -33, 1650, 326, 1650
1116 /* YYPGOTO[NTERM-NUM]. */
1117 static const yytype_int16 yypgoto
[] =
1119 -345, -345, -345, -345, -345, -345, -345, -345, -345, -345,
1120 -345, -345, -345, 85, -345, -345, -345, -345, -103, -345,
1121 -54, -47, -74, -40, 53, 54, 52, 55, 56, 51,
1122 -345, -110, -157, -345, -147, -219, 5, 7, -345, -345,
1123 -345, 146, 232, 227, 147, -345, -345, -238, -345, -345,
1124 -345, 117, -345, -345, -39, -345, -9, -14, -345, -345,
1125 279, -345, 220, -124, -345, 44, -286, 116, -134, -257,
1126 -344, -294, -11, -22, 280, 197, 145, -345, -345, 47,
1127 -345, -345, -345, -345, -345, -345, -345, 288, -345
1130 /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
1131 positive, shift that token. If negative, reduce the rule which
1132 number is the opposite. If zero, do what YYDEFACT says.
1133 If YYTABLE_NINF, syntax error. */
1134 #define YYTABLE_NINF -264
1135 static const yytype_int16 yytable
[] =
1137 93, 307, 244, -160, 246, 105, 284, 285, 118, 295,
1138 325, 239, 125, 233, 80, 251, 81, 254, 255, 359,
1139 297, 262, 224, 118, 384, 72, 73, 74, 126, 223,
1140 12, 13, 109, 119, 120, 121, 298, 119, 120, 121,
1141 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
1142 304, 130, 119, 120, 121, 405, 313, 249, 250, 30,
1143 219, 31, 220, 32, 308, 33, 34, 35, 305, 109,
1144 93, 300, 314, 297, 377, 297, 297, 388, 276, 1,
1145 221, 325, 131, 133, 80, 358, 81, 323, 388, 393,
1146 373, 321, 395, 362, 320, 128, 139, 136, 322, 129,
1147 400, 324, 235, 333, 233, 198, 236, 4, 402, 330,
1148 224, 383, 102, 103, 216, -36, 104, 223, 334, 300,
1149 5, 286, 287, 256, 296, 257, 136, 259, 136, 7,
1150 108, 260, 8, 12, 13, 11, 198, 374, 101, 106,
1151 355, 327, 404, 368, 76, 297, 111, 297, 308, 354,
1152 408, 116, 404, 369, 396, 274, 407, 297, 297, 198,
1153 297, 117, 30, 127, 31, 132, 32, 134, 33, 34,
1154 35, 140, 324, 135, 335, 336, 337, 223, 223, 223,
1155 223, 223, 223, 223, 223, 223, 223, 223, 223, 223,
1156 223, 223, 223, -98, 224, 218, 198, 277, 278, 279,
1157 227, 223, 224, 308, 113, 114, 107, 229, 216, 223,
1158 342, 343, 344, 345, 280, 281, 391, 380, 308, 136,
1159 234, 308, 282, 283, 288, 289, 338, 339, 240, 308,
1160 237, 198, 238, 108, 397, 340, 341, 308, 241, 198,
1161 14, 15, 16, 17, 198, 242, 224, 76, 346, 347,
1162 247, 245, 248, 223, 406, 18, 19, 20, 21, 22,
1163 23, 24, 25, 26, 27, 28, 29, 258, 263, 290,
1164 292, 291, 293, 294, 301, 310, 36, 37, 38, 39,
1165 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1166 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1167 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1168 198, 331, 113, -35, 312, 316, 159, -30, 360, 356,
1169 297, 364, 370, 361, 371, 372, -36, 381, 376, 375,
1170 378, 382, 379, 168, 386, 392, 399, 401, 409, 72,
1171 73, 74, 332, 348, 350, 349, 353, 394, 351, 213,
1172 352, 217, 403, 315, 110, 228, 317, 363, 385, 198,
1173 398, 115, 198, 302, 303, 253, 365, 112, 0, 0,
1174 0, 0, 0, 198, 0, 0, 0, 0, 0, 0,
1175 0, 0, 0, 0, 0, 318, 77, 0, 78, 0,
1176 198, 0, 0, 0, 0, 0, 0, 0, 198, 0,
1177 198, 12, 13, 14, 15, 16, 17, 143, 144, 145,
1178 0, 146, 147, 148, 149, 150, 151, 152, 18, 19,
1179 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
1180 30, 0, 31, 0, 32, 0, 33, 34, 35, 36,
1181 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
1182 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1183 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1184 67, 68, 69, 153, 154, 155, 156, 157, 158, 159,
1185 0, 0, 160, 161, 0, 0, 0, 0, 0, 0,
1186 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1187 0, 71, 72, 73, 74, 0, 75, 0, 0, 0,
1188 0, 0, 0, 0, 0, 76, 0, 0, 0, 0,
1189 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1190 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1191 0, 0, 0, 0, 0, 0, 0, 0, 0, 77,
1192 0, 78, 0, 0, 0, 0, 0, 0, 0, 0,
1193 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1194 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1195 0, 0, 0, 0, 0, 0, 162, 0, 0, 0,
1196 0, 0, 163, 164, 165, 166, 0, 0, 0, 0,
1197 0, 0, 0, 0, 0, 0, 0, 167, 168, 169,
1198 12, 13, 14, 15, 16, 17, 143, 144, 145, 0,
1199 146, 147, 148, 149, 150, 151, 152, 18, 19, 20,
1200 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
1201 0, 31, 0, 32, 0, 33, 34, 35, 36, 37,
1202 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1203 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1204 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1205 68, 69, 153, 154, 155, 156, 157, 158, 159, 0,
1206 0, 160, 161, 0, 0, 0, 0, 0, 0, 0,
1207 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1208 71, 72, 73, 74, 0, 75, 0, 0, 0, 0,
1209 0, 0, 0, 0, 76, 0, 0, 0, 0, 0,
1210 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1211 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1212 0, 0, 0, 0, 0, 0, 0, 0, 77, 0,
1213 78, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1214 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1215 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1216 0, 0, 0, 0, 0, 162, 0, 0, 0, 0,
1217 0, 163, 164, 165, 166, 0, 0, 0, 0, 0,
1218 0, 0, 0, 0, 0, 0, 167, 168, 252, 12,
1219 13, 14, 15, 16, 17, 143, 144, 145, 0, 146,
1220 147, 148, 149, 150, 151, 152, 18, 19, 20, 21,
1221 22, 23, 24, 25, 26, 27, 28, 29, 30, 0,
1222 31, 0, 32, 0, 33, 34, 35, 36, 37, 38,
1223 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1224 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1225 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1226 69, 153, 154, 155, 156, 157, 158, 159, 0, 0,
1227 160, 161, 0, 0, 0, 0, 0, 0, 0, 0,
1228 0, 0, 0, 0, 0, 0, 0, 0, 0, 71,
1229 72, 73, 74, 0, 75, 0, 0, 0, 0, 0,
1230 0, 0, 0, 76, 0, 0, 0, 0, 0, 0,
1231 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1232 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1233 0, 0, 0, 0, 0, 0, 0, 77, 0, 78,
1234 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1235 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1236 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1237 0, 0, 0, 0, 162, 0, 0, 0, 0, 0,
1238 163, 164, 165, 166, 0, 0, 0, 0, 0, 0,
1239 0, 0, 0, 0, 0, 167, 168, 299, 12, 13,
1240 14, 15, 16, 17, 143, 144, 145, 0, 146, 147,
1241 148, 149, 150, 151, 152, 18, 19, 20, 21, 22,
1242 23, 24, 25, 26, 27, 28, 29, 30, 0, 31,
1243 0, 32, 0, 33, 34, 35, 36, 37, 38, 39,
1244 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1245 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1246 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1247 153, 154, 155, 156, 157, 158, 159, 0, 0, 160,
1248 161, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1249 0, 0, 0, 0, 0, 0, 0, 0, 71, 72,
1250 73, 74, 0, 75, 0, 0, 0, 0, 0, 0,
1251 0, 0, 76, 0, 0, 0, 0, 0, 0, 0,
1252 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1253 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1254 0, 0, 0, 0, 0, 0, 77, 0, 78, 0,
1255 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1256 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1257 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1258 0, 0, 0, 162, 0, 0, 0, 0, 0, 163,
1259 164, 165, 166, 0, 0, 0, 0, 0, 0, 0,
1260 0, 0, 0, 0, 167, 168, 328, 12, 13, 14,
1261 15, 16, 17, 143, 144, 145, 0, 146, 147, 148,
1262 149, 150, 151, 152, 18, 19, 20, 21, 22, 23,
1263 24, 25, 26, 27, 28, 29, 30, 0, 31, 0,
1264 32, 0, 33, 34, 35, 36, 37, 38, 39, 40,
1265 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1266 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1267 61, 62, 63, 64, 65, 66, 67, 68, 69, 153,
1268 154, 155, 156, 157, 158, 159, 0, 0, 160, 161,
1269 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1270 0, 0, 0, 0, 0, 0, 0, 71, 72, 73,
1271 74, 0, 75, 0, 0, 0, 0, 0, 0, 0,
1272 0, 76, 0, 0, 0, 0, 0, 0, 0, 0,
1273 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1274 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1275 0, 0, 0, 0, 0, 77, 0, 78, 0, 0,
1276 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1277 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1278 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1279 0, 0, 162, 0, 0, 0, 0, 0, 163, 164,
1280 165, 166, 0, 0, 0, 0, 0, 0, 0, 0,
1281 0, 0, 0, 167, 168, 12, 13, 14, 15, 16,
1282 17, 143, 144, 145, 0, 146, 387, 148, 149, 150,
1283 151, 152, 18, 19, 20, 21, 22, 23, 24, 25,
1284 26, 27, 28, 29, 30, 0, 31, 0, 32, 0,
1285 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
1286 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1287 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1288 63, 64, 65, 66, 67, 68, 69, 153, 154, 155,
1289 156, 157, 158, 159, 0, 0, 160, 161, 0, 0,
1290 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1291 0, 0, 0, 0, 0, 71, 72, 73, 74, 0,
1292 75, 0, 0, 0, 0, 0, 0, 0, 0, 76,
1293 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1294 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1295 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1296 0, 0, 0, 77, 0, 78, 0, 0, 0, 0,
1297 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1298 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1299 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1300 162, 0, 0, 0, 0, 0, 163, 164, 165, 166,
1301 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1302 0, 167, 114, 12, 13, 14, 15, 16, 17, 143,
1303 144, 145, 0, 146, 387, 148, 149, 150, 151, 152,
1304 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
1305 28, 29, 30, 0, 31, 0, 32, 0, 33, 34,
1306 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1307 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1308 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1309 65, 66, 67, 68, 69, 153, 154, 155, 156, 157,
1310 158, 159, 0, 0, 160, 161, 0, 0, 0, 0,
1311 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1312 0, 0, 0, 71, 72, 73, 74, 0, 75, 0,
1313 0, 0, 0, 0, 0, 0, 0, 76, 0, 0,
1314 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1315 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1316 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1317 0, 77, 0, 78, 0, 0, 0, 0, 0, 0,
1318 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1319 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1320 0, 0, 0, 0, 0, 0, 0, 0, 162, 0,
1321 0, 0, 0, 0, 163, 164, 165, 166, 12, 13,
1322 14, 15, 16, 17, 0, 0, 0, 0, 0, 167,
1323 168, 0, 0, 0, 0, 18, 19, 20, 21, 22,
1324 23, 24, 25, 26, 27, 28, 29, 30, 0, 31,
1325 0, 32, 0, 33, 34, 35, 36, 37, 38, 39,
1326 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1327 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1328 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1329 0, 154, 155, 156, 157, 158, 159, 0, 0, 160,
1330 161, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1331 0, 0, 0, 0, 0, 0, 0, 0, 71, 72,
1332 73, 74, 0, 75, 0, 0, 0, 0, 0, 0,
1333 0, 0, 76, 0, 0, 0, 0, 0, 0, 0,
1334 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1335 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1336 0, 0, 0, 0, 0, 0, 77, 0, 78, 0,
1337 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1338 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1339 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1340 0, 0, 0, 162, 0, 0, 0, 0, 0, 163,
1341 164, 165, 166, 12, 13, 14, 15, 16, 17, 0,
1342 0, 0, 0, 0, 167, 0, 0, 0, 0, 0,
1343 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
1344 28, 29, 30, 0, 31, 0, 32, 0, 33, 34,
1345 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1346 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1347 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1348 65, 66, 67, 68, 69, 0, 154, 155, 156, 157,
1349 158, 159, 0, 0, 160, 161, 0, 0, 0, 0,
1350 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1351 0, 0, 0, 108, 72, 73, 74, 0, 0, 0,
1352 0, 0, 0, 0, 0, 0, 0, 76, 14, 15,
1353 16, 17, 0, 0, 0, 0, 0, 0, 0, 0,
1354 0, 0, 0, 18, 19, 20, 21, 22, 23, 24,
1355 25, 26, 27, 28, 29, 0, 0, 0, 0, 0,
1356 0, 77, 0, 78, 36, 37, 38, 39, 40, 41,
1357 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1358 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1359 62, 63, 64, 65, 66, 67, 68, 69, 162, 70,
1360 0, 0, 0, 0, 163, 164, 165, 166, 0, 0,
1361 0, 0, 0, 0, 0, 0, 0, 0, 0, -263,
1362 0, 0, 0, 0, 0, 0, 0, 72, 73, 74,
1363 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1364 0, 14, 15, 16, 17, 0, 0, 0, 0, 0,
1365 0, 0, 0, 0, 0, 0, 18, 19, 20, 21,
1366 22, 23, 24, 25, 26, 27, 28, 29, 0, 0,
1367 0, 0, 0, 0, 77, 0, 78, 36, 37, 38,
1368 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1369 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1370 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1371 69, 0, 70, 0, 0, 0, 0, 0, 0, 0,
1372 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1373 0, 0, 0, 0, 232, 0, 0, 0, 0, 0,
1374 72, 73, 74, 0, 0, 0, 0, 0, 0, 0,
1375 0, 0, 0, 0, 14, 15, 16, 17, 0, 0,
1376 0, 0, 0, 0, 0, 0, 0, 0, 0, 18,
1377 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1378 29, 0, 0, 0, 0, 0, 0, 77, 0, 78,
1379 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
1380 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1381 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1382 66, 67, 68, 69, 0, 154, 155, 156, 157, 158,
1383 159, 0, 0, 160, 161, 0, 0, 0, 0, 0,
1384 0, 0, 0, 0, 0, 0, 0, 311, 0, 0,
1385 0, 0, 0, 72, 73, 74, 0, 0, 0, 0,
1386 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1387 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1388 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1389 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1390 77, 0, 78, 0, 0, 0, 0, 0, 0, 0,
1391 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1392 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1393 0, 0, 0, 0, 0, 0, 0, 162, 0, 0,
1394 0, 0, 0, 163, 164, 165, 166, 12, 13, 14,
1395 15, 16, 17, 0, 0, 0, 0, 0, 243, 0,
1396 0, 0, 0, 0, 18, 19, 20, 21, 22, 23,
1397 24, 25, 26, 27, 28, 29, 30, 0, 31, 0,
1398 32, 0, 33, 34, 35, 36, 37, 38, 39, 40,
1399 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1400 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1401 61, 62, 63, 64, 65, 66, 67, 68, 69, 0,
1402 154, 155, 156, 157, 158, 159, 0, 0, 160, 161,
1403 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1404 0, 0, 0, 0, 0, 0, 0, 108, 72, 73,
1405 74, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1406 0, 76, 0, 0, 0, 0, 0, 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, 77, 0, 78, 0, 0,
1410 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1411 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1412 0, 0, 0, 0, 0, 0, 0, 14, 15, 16,
1413 17, 0, 162, 0, 0, 0, 0, 0, 163, 164,
1414 165, 166, 18, 19, 20, 21, 22, 23, 24, 25,
1415 26, 27, 28, 29, 0, 0, 0, 0, 0, 0,
1416 0, 0, 0, 36, 37, 38, 39, 40, 41, 42,
1417 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1418 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1419 63, 64, 65, 66, 67, 68, 69, 0, 154, 155,
1420 156, 157, 158, 159, 0, 0, 160, 161, 0, 0,
1421 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1422 0, 0, 0, 0, 0, 0, 72, 73, 74, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1427 0, 0, 0, 77, 0, 78, 0, 0, 0, 0,
1428 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1429 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1430 0, 0, 0, 0, 0, 14, 15, 16, 17, 0,
1431 162, 0, 0, 222, 0, 0, 163, 164, 165, 166,
1432 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
1433 28, 29, 0, 0, 0, 0, 0, 0, 0, 0,
1434 0, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1435 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1436 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1437 65, 66, 67, 68, 69, 0, 154, 155, 156, 157,
1438 158, 159, 0, 0, 160, 161, 0, 0, 0, 0,
1439 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1440 0, 0, 0, 0, 72, 73, 74, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1445 0, 77, 0, 78, 0, 0, 0, 0, 0, 0,
1446 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1447 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1448 0, 0, 0, 14, 15, 16, 17, 0, 162, 0,
1449 0, 306, 0, 0, 163, 164, 165, 166, 18, 19,
1450 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
1451 0, 0, 0, 0, 0, 0, 0, 0, 0, 36,
1452 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
1453 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1454 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1455 67, 68, 69, 0, 154, 155, 156, 157, 158, 159,
1456 0, 0, 160, 161, 0, 0, 0, 0, 0, 0,
1457 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1458 0, 0, 72, 73, 74, 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, 0, 0, 0, 0, 0, 0, 0, 0, 77,
1463 0, 78, 0, 0, 0, 0, 0, 0, 0, 0,
1464 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1465 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1466 0, 14, 15, 16, 17, 0, 162, 0, 0, 357,
1467 0, 0, 163, 164, 165, 166, 18, 19, 20, 21,
1468 22, 23, 24, 25, 26, 27, 28, 29, 0, 0,
1469 0, 0, 0, 0, 0, 0, 0, 36, 37, 38,
1470 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1471 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1472 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1473 69, 0, 154, 155, 156, 157, 158, 159, 0, 0,
1474 160, 161, 0, 0, 0, 0, 0, 0, 0, 0,
1475 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1476 72, 73, 74, 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, 0, 0, 0, 0, 0, 0, 77, 0, 78,
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, 0, 0, 0, 0, 0, 0, 0, 14,
1484 15, 16, 17, 0, 162, 0, 0, 0, 0, 0,
1485 163, 164, 165, 166, 18, 19, 20, 21, 22, 23,
1486 24, 25, 26, 27, 28, 29, 0, 0, 0, 0,
1487 0, 0, 0, 0, 0, 36, 37, 38, 39, 40,
1488 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1489 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1490 61, 62, 63, 64, 65, 66, 67, 68, 261, 0,
1491 154, 155, 156, 157, 158, 159, 0, 0, 160, 161,
1492 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1493 0, 0, 0, 0, 0, 0, 0, 0, 72, 73,
1494 74, 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, 0, 0, 0, 0, 77, 0, 78, 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, -3, 0, 0, 12, 13, 14, 15, 16,
1502 17, 0, 162, 0, 0, 0, 0, 0, 163, 164,
1503 165, 166, 18, 19, 20, 21, 22, 23, 24, 25,
1504 26, 27, 28, 29, 30, 0, 31, 0, 32, 0,
1505 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
1506 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1507 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1508 63, 64, 65, 66, 67, 68, 69, 0, 70, 0,
1509 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1510 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1511 0, 0, 0, 0, 0, 71, 72, 73, 74, 0,
1512 75, 0, 0, 0, 0, 0, 0, 0, 0, 76,
1513 0, 12, 13, 14, 15, 16, 17, 0, 0, 0,
1514 0, 0, 0, 0, 0, 0, 0, 0, 18, 19,
1515 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
1516 30, 0, 31, 77, 32, 78, 33, 34, 35, 36,
1517 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
1518 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1519 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1520 67, 68, 69, 0, 70, 0, 0, 0, 0, 0,
1521 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1522 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1523 0, 71, 72, 73, 74, 0, 75, 0, 0, 0,
1524 0, 0, 0, 0, 0, 76, 14, 15, 16, 17,
1525 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1526 0, 18, 19, 20, 21, 22, 23, 24, 25, 26,
1527 27, 28, 29, 0, 0, 0, 0, 0, 0, 77,
1528 0, 78, 36, 37, 38, 39, 40, 41, 42, 43,
1529 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1530 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1531 64, 65, 66, 67, 68, 69, 0, 70, 14, 15,
1532 16, 17, 0, 0, 0, 0, 0, 0, 0, 0,
1533 0, 0, 0, 18, 19, 20, 21, 22, 23, 24,
1534 25, 26, 27, 28, 29, 72, 73, 74, 0, 0,
1535 0, 0, 0, 0, 36, 37, 38, 39, 40, 41,
1536 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1537 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1538 62, 63, 64, 65, 66, 67, 68, 69, 0, 70,
1539 0, 0, 77, 0, 78, 0, 0, 0, 0, 0,
1540 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1541 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1542 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1543 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1544 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1545 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1546 0, 0, 0, 0, 77, 0, 78
1549 static const yytype_int16 yycheck
[] =
1551 9, 220, 149, 76, 151, 76, 86, 87, 4, 91,
1552 248, 145, 193, 137, 9, 162, 9, 84, 85, 305,
1553 193, 178, 132, 4, 368, 104, 105, 106, 209, 132,
1554 3, 4, 71, 33, 34, 35, 209, 33, 34, 35,
1555 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
1556 190, 90, 33, 34, 35, 399, 193, 160, 161, 32,
1557 188, 34, 190, 36, 221, 38, 39, 40, 208, 108,
1558 79, 205, 209, 193, 360, 193, 193, 371, 181, 109,
1559 208, 319, 91, 97, 79, 304, 79, 207, 382, 375,
1560 207, 209, 378, 312, 241, 33, 110, 106, 245, 37,
1561 386, 248, 189, 260, 228, 114, 193, 78, 394, 256,
1562 220, 368, 33, 34, 123, 188, 37, 220, 275, 253,
1563 0, 201, 202, 190, 206, 192, 135, 189, 137, 114,
1564 103, 193, 110, 3, 4, 76, 145, 356, 113, 210,
1565 297, 189, 399, 189, 117, 193, 188, 193, 305, 296,
1566 407, 189, 409, 189, 189, 208, 189, 193, 193, 168,
1567 193, 193, 32, 76, 34, 190, 36, 76, 38, 39,
1568 40, 76, 319, 210, 277, 278, 279, 280, 281, 282,
1569 283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
1570 293, 294, 295, 189, 304, 76, 205, 198, 199, 200,
1571 114, 304, 312, 360, 209, 210, 76, 76, 217, 312,
1572 284, 285, 286, 287, 194, 195, 373, 364, 375, 228,
1573 209, 378, 82, 83, 88, 89, 280, 281, 188, 386,
1574 209, 240, 209, 103, 381, 282, 283, 394, 188, 248,
1575 5, 6, 7, 8, 253, 209, 356, 117, 288, 289,
1576 207, 188, 188, 356, 401, 20, 21, 22, 23, 24,
1577 25, 26, 27, 28, 29, 30, 31, 189, 188, 203,
1578 205, 204, 90, 92, 76, 191, 41, 42, 43, 44,
1579 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1580 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1581 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1582 319, 76, 209, 188, 190, 75, 81, 189, 208, 190,
1583 193, 188, 76, 191, 189, 191, 188, 209, 191, 208,
1584 208, 189, 191, 210, 208, 191, 12, 188, 12, 104,
1585 105, 106, 257, 290, 292, 291, 295, 208, 293, 117,
1586 294, 124, 209, 236, 75, 135, 240, 313, 369, 368,
1587 382, 81, 371, 217, 217, 168, 319, 79, -1, -1,
1588 -1, -1, -1, 382, -1, -1, -1, -1, -1, -1,
1589 -1, -1, -1, -1, -1, 240, 151, -1, 153, -1,
1590 399, -1, -1, -1, -1, -1, -1, -1, 407, -1,
1591 409, 3, 4, 5, 6, 7, 8, 9, 10, 11,
1592 -1, 13, 14, 15, 16, 17, 18, 19, 20, 21,
1593 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
1594 32, -1, 34, -1, 36, -1, 38, 39, 40, 41,
1595 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1596 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1597 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1598 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
1599 -1, -1, 84, 85, -1, -1, -1, -1, -1, -1,
1600 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1601 -1, 103, 104, 105, 106, -1, 108, -1, -1, -1,
1602 -1, -1, -1, -1, -1, 117, -1, -1, -1, -1,
1603 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1604 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1605 -1, -1, -1, -1, -1, -1, -1, -1, -1, 151,
1606 -1, 153, -1, -1, -1, -1, -1, -1, -1, -1,
1607 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1608 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1609 -1, -1, -1, -1, -1, -1, 188, -1, -1, -1,
1610 -1, -1, 194, 195, 196, 197, -1, -1, -1, -1,
1611 -1, -1, -1, -1, -1, -1, -1, 209, 210, 211,
1612 3, 4, 5, 6, 7, 8, 9, 10, 11, -1,
1613 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
1614 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
1615 -1, 34, -1, 36, -1, 38, 39, 40, 41, 42,
1616 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1617 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1618 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
1619 73, 74, 75, 76, 77, 78, 79, 80, 81, -1,
1620 -1, 84, 85, -1, -1, -1, -1, -1, -1, -1,
1621 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1622 103, 104, 105, 106, -1, 108, -1, -1, -1, -1,
1623 -1, -1, -1, -1, 117, -1, -1, -1, -1, -1,
1624 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1625 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1626 -1, -1, -1, -1, -1, -1, -1, -1, 151, -1,
1627 153, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1628 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1629 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1630 -1, -1, -1, -1, -1, 188, -1, -1, -1, -1,
1631 -1, 194, 195, 196, 197, -1, -1, -1, -1, -1,
1632 -1, -1, -1, -1, -1, -1, 209, 210, 211, 3,
1633 4, 5, 6, 7, 8, 9, 10, 11, -1, 13,
1634 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
1635 24, 25, 26, 27, 28, 29, 30, 31, 32, -1,
1636 34, -1, 36, -1, 38, 39, 40, 41, 42, 43,
1637 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1638 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1639 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1640 74, 75, 76, 77, 78, 79, 80, 81, -1, -1,
1641 84, 85, -1, -1, -1, -1, -1, -1, -1, -1,
1642 -1, -1, -1, -1, -1, -1, -1, -1, -1, 103,
1643 104, 105, 106, -1, 108, -1, -1, -1, -1, -1,
1644 -1, -1, -1, 117, -1, -1, -1, -1, -1, -1,
1645 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1646 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1647 -1, -1, -1, -1, -1, -1, -1, 151, -1, 153,
1648 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1649 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1650 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1651 -1, -1, -1, -1, 188, -1, -1, -1, -1, -1,
1652 194, 195, 196, 197, -1, -1, -1, -1, -1, -1,
1653 -1, -1, -1, -1, -1, 209, 210, 211, 3, 4,
1654 5, 6, 7, 8, 9, 10, 11, -1, 13, 14,
1655 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
1656 25, 26, 27, 28, 29, 30, 31, 32, -1, 34,
1657 -1, 36, -1, 38, 39, 40, 41, 42, 43, 44,
1658 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1659 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1660 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1661 75, 76, 77, 78, 79, 80, 81, -1, -1, 84,
1662 85, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1663 -1, -1, -1, -1, -1, -1, -1, -1, 103, 104,
1664 105, 106, -1, 108, -1, -1, -1, -1, -1, -1,
1665 -1, -1, 117, -1, -1, -1, -1, -1, -1, -1,
1666 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1667 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1668 -1, -1, -1, -1, -1, -1, 151, -1, 153, -1,
1669 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1670 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1671 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1672 -1, -1, -1, 188, -1, -1, -1, -1, -1, 194,
1673 195, 196, 197, -1, -1, -1, -1, -1, -1, -1,
1674 -1, -1, -1, -1, 209, 210, 211, 3, 4, 5,
1675 6, 7, 8, 9, 10, 11, -1, 13, 14, 15,
1676 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
1677 26, 27, 28, 29, 30, 31, 32, -1, 34, -1,
1678 36, -1, 38, 39, 40, 41, 42, 43, 44, 45,
1679 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1680 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1681 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1682 76, 77, 78, 79, 80, 81, -1, -1, 84, 85,
1683 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1684 -1, -1, -1, -1, -1, -1, -1, 103, 104, 105,
1685 106, -1, 108, -1, -1, -1, -1, -1, -1, -1,
1686 -1, 117, -1, -1, -1, -1, -1, -1, -1, -1,
1687 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1688 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1689 -1, -1, -1, -1, -1, 151, -1, 153, -1, -1,
1690 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1691 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1692 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1693 -1, -1, 188, -1, -1, -1, -1, -1, 194, 195,
1694 196, 197, -1, -1, -1, -1, -1, -1, -1, -1,
1695 -1, -1, -1, 209, 210, 3, 4, 5, 6, 7,
1696 8, 9, 10, 11, -1, 13, 14, 15, 16, 17,
1697 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
1698 28, 29, 30, 31, 32, -1, 34, -1, 36, -1,
1699 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1700 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1701 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1702 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
1703 78, 79, 80, 81, -1, -1, 84, 85, -1, -1,
1704 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1705 -1, -1, -1, -1, -1, 103, 104, 105, 106, -1,
1706 108, -1, -1, -1, -1, -1, -1, -1, -1, 117,
1707 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1708 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1709 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1710 -1, -1, -1, 151, -1, 153, -1, -1, -1, -1,
1711 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1712 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1713 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1714 188, -1, -1, -1, -1, -1, 194, 195, 196, 197,
1715 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1716 -1, 209, 210, 3, 4, 5, 6, 7, 8, 9,
1717 10, 11, -1, 13, 14, 15, 16, 17, 18, 19,
1718 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
1719 30, 31, 32, -1, 34, -1, 36, -1, 38, 39,
1720 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1721 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1722 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1723 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
1724 80, 81, -1, -1, 84, 85, -1, -1, -1, -1,
1725 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1726 -1, -1, -1, 103, 104, 105, 106, -1, 108, -1,
1727 -1, -1, -1, -1, -1, -1, -1, 117, -1, -1,
1728 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1729 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1730 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1731 -1, 151, -1, 153, -1, -1, -1, -1, -1, -1,
1732 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1733 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1734 -1, -1, -1, -1, -1, -1, -1, -1, 188, -1,
1735 -1, -1, -1, -1, 194, 195, 196, 197, 3, 4,
1736 5, 6, 7, 8, -1, -1, -1, -1, -1, 209,
1737 210, -1, -1, -1, -1, 20, 21, 22, 23, 24,
1738 25, 26, 27, 28, 29, 30, 31, 32, -1, 34,
1739 -1, 36, -1, 38, 39, 40, 41, 42, 43, 44,
1740 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1741 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1742 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1743 -1, 76, 77, 78, 79, 80, 81, -1, -1, 84,
1744 85, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1745 -1, -1, -1, -1, -1, -1, -1, -1, 103, 104,
1746 105, 106, -1, 108, -1, -1, -1, -1, -1, -1,
1747 -1, -1, 117, -1, -1, -1, -1, -1, -1, -1,
1748 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1749 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1750 -1, -1, -1, -1, -1, -1, 151, -1, 153, -1,
1751 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1752 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1753 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1754 -1, -1, -1, 188, -1, -1, -1, -1, -1, 194,
1755 195, 196, 197, 3, 4, 5, 6, 7, 8, -1,
1756 -1, -1, -1, -1, 209, -1, -1, -1, -1, -1,
1757 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
1758 30, 31, 32, -1, 34, -1, 36, -1, 38, 39,
1759 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1760 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1761 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1762 70, 71, 72, 73, 74, -1, 76, 77, 78, 79,
1763 80, 81, -1, -1, 84, 85, -1, -1, -1, -1,
1764 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1765 -1, -1, -1, 103, 104, 105, 106, -1, -1, -1,
1766 -1, -1, -1, -1, -1, -1, -1, 117, 5, 6,
1767 7, 8, -1, -1, -1, -1, -1, -1, -1, -1,
1768 -1, -1, -1, 20, 21, 22, 23, 24, 25, 26,
1769 27, 28, 29, 30, 31, -1, -1, -1, -1, -1,
1770 -1, 151, -1, 153, 41, 42, 43, 44, 45, 46,
1771 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1772 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1773 67, 68, 69, 70, 71, 72, 73, 74, 188, 76,
1774 -1, -1, -1, -1, 194, 195, 196, 197, -1, -1,
1775 -1, -1, -1, -1, -1, -1, -1, -1, -1, 209,
1776 -1, -1, -1, -1, -1, -1, -1, 104, 105, 106,
1777 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1778 -1, 5, 6, 7, 8, -1, -1, -1, -1, -1,
1779 -1, -1, -1, -1, -1, -1, 20, 21, 22, 23,
1780 24, 25, 26, 27, 28, 29, 30, 31, -1, -1,
1781 -1, -1, -1, -1, 151, -1, 153, 41, 42, 43,
1782 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1783 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1784 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1785 74, -1, 76, -1, -1, -1, -1, -1, -1, -1,
1786 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1787 -1, -1, -1, -1, 211, -1, -1, -1, -1, -1,
1788 104, 105, 106, -1, -1, -1, -1, -1, -1, -1,
1789 -1, -1, -1, -1, 5, 6, 7, 8, -1, -1,
1790 -1, -1, -1, -1, -1, -1, -1, -1, -1, 20,
1791 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
1792 31, -1, -1, -1, -1, -1, -1, 151, -1, 153,
1793 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1794 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1795 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1796 71, 72, 73, 74, -1, 76, 77, 78, 79, 80,
1797 81, -1, -1, 84, 85, -1, -1, -1, -1, -1,
1798 -1, -1, -1, -1, -1, -1, -1, 211, -1, -1,
1799 -1, -1, -1, 104, 105, 106, -1, -1, -1, -1,
1800 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1801 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1802 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1803 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1804 151, -1, 153, -1, -1, -1, -1, -1, -1, -1,
1805 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1806 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1807 -1, -1, -1, -1, -1, -1, -1, 188, -1, -1,
1808 -1, -1, -1, 194, 195, 196, 197, 3, 4, 5,
1809 6, 7, 8, -1, -1, -1, -1, -1, 209, -1,
1810 -1, -1, -1, -1, 20, 21, 22, 23, 24, 25,
1811 26, 27, 28, 29, 30, 31, 32, -1, 34, -1,
1812 36, -1, 38, 39, 40, 41, 42, 43, 44, 45,
1813 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1814 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1815 66, 67, 68, 69, 70, 71, 72, 73, 74, -1,
1816 76, 77, 78, 79, 80, 81, -1, -1, 84, 85,
1817 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1818 -1, -1, -1, -1, -1, -1, -1, 103, 104, 105,
1819 106, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1820 -1, 117, -1, -1, -1, -1, -1, -1, -1, -1,
1821 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1822 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1823 -1, -1, -1, -1, -1, 151, -1, 153, -1, -1,
1824 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1825 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1826 -1, -1, -1, -1, -1, -1, -1, 5, 6, 7,
1827 8, -1, 188, -1, -1, -1, -1, -1, 194, 195,
1828 196, 197, 20, 21, 22, 23, 24, 25, 26, 27,
1829 28, 29, 30, 31, -1, -1, -1, -1, -1, -1,
1830 -1, -1, -1, 41, 42, 43, 44, 45, 46, 47,
1831 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1832 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1833 68, 69, 70, 71, 72, 73, 74, -1, 76, 77,
1834 78, 79, 80, 81, -1, -1, 84, 85, -1, -1,
1835 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1836 -1, -1, -1, -1, -1, -1, 104, 105, 106, -1,
1837 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1838 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1839 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1840 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1841 -1, -1, -1, 151, -1, 153, -1, -1, -1, -1,
1842 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1843 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1844 -1, -1, -1, -1, -1, 5, 6, 7, 8, -1,
1845 188, -1, -1, 191, -1, -1, 194, 195, 196, 197,
1846 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
1847 30, 31, -1, -1, -1, -1, -1, -1, -1, -1,
1848 -1, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1849 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1850 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1851 70, 71, 72, 73, 74, -1, 76, 77, 78, 79,
1852 80, 81, -1, -1, 84, 85, -1, -1, -1, -1,
1853 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1854 -1, -1, -1, -1, 104, 105, 106, -1, -1, -1,
1855 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1856 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1857 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1858 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1859 -1, 151, -1, 153, -1, -1, -1, -1, -1, -1,
1860 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1861 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1862 -1, -1, -1, 5, 6, 7, 8, -1, 188, -1,
1863 -1, 191, -1, -1, 194, 195, 196, 197, 20, 21,
1864 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
1865 -1, -1, -1, -1, -1, -1, -1, -1, -1, 41,
1866 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1867 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1868 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1869 72, 73, 74, -1, 76, 77, 78, 79, 80, 81,
1870 -1, -1, 84, 85, -1, -1, -1, -1, -1, -1,
1871 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1872 -1, -1, 104, 105, 106, -1, -1, -1, -1, -1,
1873 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1874 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1875 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1876 -1, -1, -1, -1, -1, -1, -1, -1, -1, 151,
1877 -1, 153, -1, -1, -1, -1, -1, -1, -1, -1,
1878 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1879 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1880 -1, 5, 6, 7, 8, -1, 188, -1, -1, 191,
1881 -1, -1, 194, 195, 196, 197, 20, 21, 22, 23,
1882 24, 25, 26, 27, 28, 29, 30, 31, -1, -1,
1883 -1, -1, -1, -1, -1, -1, -1, 41, 42, 43,
1884 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1885 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1886 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1887 74, -1, 76, 77, 78, 79, 80, 81, -1, -1,
1888 84, 85, -1, -1, -1, -1, -1, -1, -1, -1,
1889 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1890 104, 105, 106, -1, -1, -1, -1, -1, -1, -1,
1891 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1892 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1893 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1894 -1, -1, -1, -1, -1, -1, -1, 151, -1, 153,
1895 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1896 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1897 -1, -1, -1, -1, -1, -1, -1, -1, -1, 5,
1898 6, 7, 8, -1, 188, -1, -1, -1, -1, -1,
1899 194, 195, 196, 197, 20, 21, 22, 23, 24, 25,
1900 26, 27, 28, 29, 30, 31, -1, -1, -1, -1,
1901 -1, -1, -1, -1, -1, 41, 42, 43, 44, 45,
1902 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1903 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1904 66, 67, 68, 69, 70, 71, 72, 73, 74, -1,
1905 76, 77, 78, 79, 80, 81, -1, -1, 84, 85,
1906 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1907 -1, -1, -1, -1, -1, -1, -1, -1, 104, 105,
1908 106, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1909 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1910 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1911 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1912 -1, -1, -1, -1, -1, 151, -1, 153, -1, -1,
1913 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1914 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1915 -1, -1, 0, -1, -1, 3, 4, 5, 6, 7,
1916 8, -1, 188, -1, -1, -1, -1, -1, 194, 195,
1917 196, 197, 20, 21, 22, 23, 24, 25, 26, 27,
1918 28, 29, 30, 31, 32, -1, 34, -1, 36, -1,
1919 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1920 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1921 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1922 68, 69, 70, 71, 72, 73, 74, -1, 76, -1,
1923 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1924 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1925 -1, -1, -1, -1, -1, 103, 104, 105, 106, -1,
1926 108, -1, -1, -1, -1, -1, -1, -1, -1, 117,
1927 -1, 3, 4, 5, 6, 7, 8, -1, -1, -1,
1928 -1, -1, -1, -1, -1, -1, -1, -1, 20, 21,
1929 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
1930 32, -1, 34, 151, 36, 153, 38, 39, 40, 41,
1931 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1932 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1933 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1934 72, 73, 74, -1, 76, -1, -1, -1, -1, -1,
1935 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1936 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1937 -1, 103, 104, 105, 106, -1, 108, -1, -1, -1,
1938 -1, -1, -1, -1, -1, 117, 5, 6, 7, 8,
1939 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1940 -1, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1941 29, 30, 31, -1, -1, -1, -1, -1, -1, 151,
1942 -1, 153, 41, 42, 43, 44, 45, 46, 47, 48,
1943 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1944 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1945 69, 70, 71, 72, 73, 74, -1, 76, 5, 6,
1946 7, 8, -1, -1, -1, -1, -1, -1, -1, -1,
1947 -1, -1, -1, 20, 21, 22, 23, 24, 25, 26,
1948 27, 28, 29, 30, 31, 104, 105, 106, -1, -1,
1949 -1, -1, -1, -1, 41, 42, 43, 44, 45, 46,
1950 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1951 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1952 67, 68, 69, 70, 71, 72, 73, 74, -1, 76,
1953 -1, -1, 151, -1, 153, -1, -1, -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, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1959 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1960 -1, -1, -1, -1, 151, -1, 153
1963 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1964 symbol of state STATE-NUM. */
1965 static const yytype_uint16 yystos
[] =
1967 0, 109, 213, 215, 78, 0, 216, 114, 110, 214,
1968 217, 76, 3, 4, 5, 6, 7, 8, 20, 21,
1969 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
1970 32, 34, 36, 38, 39, 40, 41, 42, 43, 44,
1971 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1972 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1973 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1974 76, 103, 104, 105, 106, 108, 117, 151, 153, 218,
1975 248, 249, 250, 251, 252, 257, 258, 259, 260, 261,
1976 264, 266, 267, 268, 269, 270, 271, 272, 273, 299,
1977 300, 113, 33, 34, 37, 76, 210, 76, 103, 266,
1978 272, 188, 299, 209, 210, 286, 189, 193, 4, 33,
1979 34, 35, 254, 255, 265, 193, 209, 76, 33, 37,
1980 266, 268, 190, 269, 76, 210, 268, 274, 275, 269,
1981 76, 262, 263, 9, 10, 11, 13, 14, 15, 16,
1982 17, 18, 19, 75, 76, 77, 78, 79, 80, 81,
1983 84, 85, 188, 194, 195, 196, 197, 209, 210, 211,
1984 219, 220, 221, 223, 224, 225, 226, 227, 228, 229,
1985 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
1986 240, 241, 242, 243, 244, 246, 248, 249, 268, 279,
1987 280, 281, 282, 283, 284, 287, 288, 289, 290, 292,
1988 293, 294, 298, 254, 253, 256, 268, 255, 76, 188,
1989 190, 208, 191, 230, 243, 247, 268, 114, 274, 76,
1990 276, 277, 211, 275, 209, 189, 193, 209, 209, 280,
1991 188, 188, 209, 209, 246, 188, 246, 207, 188, 230,
1992 230, 246, 211, 287, 84, 85, 190, 192, 189, 189,
1993 193, 74, 244, 188, 93, 94, 95, 96, 97, 98,
1994 99, 100, 101, 102, 208, 245, 230, 198, 199, 200,
1995 194, 195, 82, 83, 86, 87, 201, 202, 88, 89,
1996 203, 204, 205, 90, 92, 91, 206, 193, 209, 211,
1997 280, 76, 253, 256, 190, 208, 191, 247, 244, 278,
1998 191, 211, 190, 193, 209, 263, 75, 279, 288, 295,
1999 246, 209, 246, 207, 246, 259, 291, 189, 211, 222,
2000 246, 76, 225, 244, 244, 230, 230, 230, 232, 232,
2001 233, 233, 234, 234, 234, 234, 235, 235, 236, 237,
2002 238, 239, 240, 241, 246, 244, 190, 191, 247, 278,
2003 208, 191, 247, 277, 188, 291, 296, 297, 189, 189,
2004 76, 189, 191, 207, 247, 208, 191, 278, 208, 191,
2005 246, 209, 189, 281, 282, 284, 208, 14, 283, 285,
2006 286, 244, 191, 278, 208, 278, 189, 246, 285, 12,
2007 278, 188, 278, 209, 281, 282, 246, 189, 281, 12
2010 #define yyerrok (yyerrstatus = 0)
2011 #define yyclearin (yychar = YYEMPTY)
2012 #define YYEMPTY (-2)
2015 #define YYACCEPT goto yyacceptlab
2016 #define YYABORT goto yyabortlab
2017 #define YYERROR goto yyerrorlab
2020 /* Like YYERROR except do call yyerror. This remains here temporarily
2021 to ease the transition to the new meaning of YYERROR, for GCC.
2022 Once GCC version 2 has supplanted version 1, this can go. However,
2023 YYFAIL appears to be in use. Nevertheless, it is formally deprecated
2024 in Bison 2.4.2's NEWS entry, where a plan to phase it out is
2027 #define YYFAIL goto yyerrlab
2029 /* This is here to suppress warnings from the GCC cpp's
2030 -Wunused-macros. Normally we don't worry about that warning, but
2031 some users do, and we want to make it easy for users to remove
2032 YYFAIL uses, which will produce warnings from Bison 2.5. */
2035 #define YYRECOVERING() (!!yyerrstatus)
2037 #define YYBACKUP(Token, Value) \
2039 if (yychar == YYEMPTY && yylen == 1) \
2043 yytoken = YYTRANSLATE (yychar); \
2049 yyerror (&yylloc, state, YY_("syntax error: cannot back up")); \
2056 #define YYERRCODE 256
2059 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
2060 If N is 0, then set CURRENT to the empty location which ends
2061 the previous symbol: RHS[0] (always defined). */
2063 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
2064 #ifndef YYLLOC_DEFAULT
2065 # define YYLLOC_DEFAULT(Current, Rhs, N) \
2069 (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
2070 (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
2071 (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
2072 (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
2076 (Current).first_line = (Current).last_line = \
2077 YYRHSLOC (Rhs, 0).last_line; \
2078 (Current).first_column = (Current).last_column = \
2079 YYRHSLOC (Rhs, 0).last_column; \
2085 /* YY_LOCATION_PRINT -- Print the location on the stream.
2086 This macro was not mandated originally: define only if we know
2087 we won't break user code: when these are the locations we know. */
2089 #ifndef YY_LOCATION_PRINT
2090 # if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
2091 # define YY_LOCATION_PRINT(File, Loc) \
2092 fprintf (File, "%d.%d-%d.%d", \
2093 (Loc).first_line, (Loc).first_column, \
2094 (Loc).last_line, (Loc).last_column)
2096 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2101 /* YYLEX -- calling `yylex' with the right arguments. */
2104 # define YYLEX yylex (&yylval, &yylloc, YYLEX_PARAM)
2106 # define YYLEX yylex (&yylval, &yylloc, scanner)
2109 /* Enable debugging if requested. */
2113 # include <stdio.h> /* INFRINGES ON USER NAME SPACE */
2114 # define YYFPRINTF fprintf
2117 # define YYDPRINTF(Args) \
2123 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
2127 YYFPRINTF (stderr, "%s ", Title); \
2128 yy_symbol_print (stderr, \
2129 Type, Value, Location, state); \
2130 YYFPRINTF (stderr, "\n"); \
2135 /*--------------------------------.
2136 | Print this symbol on YYOUTPUT. |
2137 `--------------------------------*/
2140 #if (defined __STDC__ || defined __C99__FUNC__ \
2141 || defined __cplusplus || defined _MSC_VER)
2143 yy_symbol_value_print (FILE *yyoutput
, int yytype
, YYSTYPE
const * const yyvaluep
, YYLTYPE
const * const yylocationp
, struct _mesa_glsl_parse_state
*state
)
2146 yy_symbol_value_print (yyoutput
, yytype
, yyvaluep
, yylocationp
, state
)
2149 YYSTYPE
const * const yyvaluep
;
2150 YYLTYPE
const * const yylocationp
;
2151 struct _mesa_glsl_parse_state
*state
;
2156 YYUSE (yylocationp
);
2159 if (yytype
< YYNTOKENS
)
2160 YYPRINT (yyoutput
, yytoknum
[yytype
], *yyvaluep
);
2172 /*--------------------------------.
2173 | Print this symbol on YYOUTPUT. |
2174 `--------------------------------*/
2176 #if (defined __STDC__ || defined __C99__FUNC__ \
2177 || defined __cplusplus || defined _MSC_VER)
2179 yy_symbol_print (FILE *yyoutput
, int yytype
, YYSTYPE
const * const yyvaluep
, YYLTYPE
const * const yylocationp
, struct _mesa_glsl_parse_state
*state
)
2182 yy_symbol_print (yyoutput
, yytype
, yyvaluep
, yylocationp
, state
)
2185 YYSTYPE
const * const yyvaluep
;
2186 YYLTYPE
const * const yylocationp
;
2187 struct _mesa_glsl_parse_state
*state
;
2190 if (yytype
< YYNTOKENS
)
2191 YYFPRINTF (yyoutput
, "token %s (", yytname
[yytype
]);
2193 YYFPRINTF (yyoutput
, "nterm %s (", yytname
[yytype
]);
2195 YY_LOCATION_PRINT (yyoutput
, *yylocationp
);
2196 YYFPRINTF (yyoutput
, ": ");
2197 yy_symbol_value_print (yyoutput
, yytype
, yyvaluep
, yylocationp
, state
);
2198 YYFPRINTF (yyoutput
, ")");
2201 /*------------------------------------------------------------------.
2202 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
2204 `------------------------------------------------------------------*/
2206 #if (defined __STDC__ || defined __C99__FUNC__ \
2207 || defined __cplusplus || defined _MSC_VER)
2209 yy_stack_print (yytype_int16
*yybottom
, yytype_int16
*yytop
)
2212 yy_stack_print (yybottom
, yytop
)
2213 yytype_int16
*yybottom
;
2214 yytype_int16
*yytop
;
2217 YYFPRINTF (stderr
, "Stack now");
2218 for (; yybottom
<= yytop
; yybottom
++)
2220 int yybot
= *yybottom
;
2221 YYFPRINTF (stderr
, " %d", yybot
);
2223 YYFPRINTF (stderr
, "\n");
2226 # define YY_STACK_PRINT(Bottom, Top) \
2229 yy_stack_print ((Bottom), (Top)); \
2233 /*------------------------------------------------.
2234 | Report that the YYRULE is going to be reduced. |
2235 `------------------------------------------------*/
2237 #if (defined __STDC__ || defined __C99__FUNC__ \
2238 || defined __cplusplus || defined _MSC_VER)
2240 yy_reduce_print (YYSTYPE
*yyvsp
, YYLTYPE
*yylsp
, int yyrule
, struct _mesa_glsl_parse_state
*state
)
2243 yy_reduce_print (yyvsp
, yylsp
, yyrule
, state
)
2247 struct _mesa_glsl_parse_state
*state
;
2250 int yynrhs
= yyr2
[yyrule
];
2252 unsigned long int yylno
= yyrline
[yyrule
];
2253 YYFPRINTF (stderr
, "Reducing stack by rule %d (line %lu):\n",
2255 /* The symbols being reduced. */
2256 for (yyi
= 0; yyi
< yynrhs
; yyi
++)
2258 YYFPRINTF (stderr
, " $%d = ", yyi
+ 1);
2259 yy_symbol_print (stderr
, yyrhs
[yyprhs
[yyrule
] + yyi
],
2260 &(yyvsp
[(yyi
+ 1) - (yynrhs
)])
2261 , &(yylsp
[(yyi
+ 1) - (yynrhs
)]) , state
);
2262 YYFPRINTF (stderr
, "\n");
2266 # define YY_REDUCE_PRINT(Rule) \
2269 yy_reduce_print (yyvsp, yylsp, Rule, state); \
2272 /* Nonzero means print parse trace. It is left uninitialized so that
2273 multiple parsers can coexist. */
2275 #else /* !YYDEBUG */
2276 # define YYDPRINTF(Args)
2277 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
2278 # define YY_STACK_PRINT(Bottom, Top)
2279 # define YY_REDUCE_PRINT(Rule)
2280 #endif /* !YYDEBUG */
2283 /* YYINITDEPTH -- initial size of the parser's stacks. */
2285 # define YYINITDEPTH 200
2288 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
2289 if the built-in stack extension method is used).
2291 Do not make this value too large; the results are undefined if
2292 YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
2293 evaluated with infinite-precision integer arithmetic. */
2296 # define YYMAXDEPTH 10000
2304 # if defined __GLIBC__ && defined _STRING_H
2305 # define yystrlen strlen
2307 /* Return the length of YYSTR. */
2308 #if (defined __STDC__ || defined __C99__FUNC__ \
2309 || defined __cplusplus || defined _MSC_VER)
2311 yystrlen (const char *yystr
)
2319 for (yylen
= 0; yystr
[yylen
]; yylen
++)
2327 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
2328 # define yystpcpy stpcpy
2330 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
2332 #if (defined __STDC__ || defined __C99__FUNC__ \
2333 || defined __cplusplus || defined _MSC_VER)
2335 yystpcpy (char *yydest
, const char *yysrc
)
2338 yystpcpy (yydest
, yysrc
)
2344 const char *yys
= yysrc
;
2346 while ((*yyd
++ = *yys
++) != '\0')
2355 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
2356 quotes and backslashes, so that it's suitable for yyerror. The
2357 heuristic is that double-quoting is unnecessary unless the string
2358 contains an apostrophe, a comma, or backslash (other than
2359 backslash-backslash). YYSTR is taken from yytname. If YYRES is
2360 null, do not copy; instead, return the length of what the result
2363 yytnamerr (char *yyres
, const char *yystr
)
2368 char const *yyp
= yystr
;
2375 goto do_not_strip_quotes
;
2379 goto do_not_strip_quotes
;
2392 do_not_strip_quotes
: ;
2396 return yystrlen (yystr
);
2398 return yystpcpy (yyres
, yystr
) - yyres
;
2402 /* Copy into YYRESULT an error message about the unexpected token
2403 YYCHAR while in state YYSTATE. Return the number of bytes copied,
2404 including the terminating null byte. If YYRESULT is null, do not
2405 copy anything; just return the number of bytes that would be
2406 copied. As a special case, return 0 if an ordinary "syntax error"
2407 message will do. Return YYSIZE_MAXIMUM if overflow occurs during
2408 size calculation. */
2410 yysyntax_error (char *yyresult
, int yystate
, int yychar
)
2412 int yyn
= yypact
[yystate
];
2414 if (! (YYPACT_NINF
< yyn
&& yyn
<= YYLAST
))
2418 int yytype
= YYTRANSLATE (yychar
);
2419 YYSIZE_T yysize0
= yytnamerr (0, yytname
[yytype
]);
2420 YYSIZE_T yysize
= yysize0
;
2422 int yysize_overflow
= 0;
2423 enum { YYERROR_VERBOSE_ARGS_MAXIMUM
= 5 };
2424 char const *yyarg
[YYERROR_VERBOSE_ARGS_MAXIMUM
];
2428 /* This is so xgettext sees the translatable formats that are
2429 constructed on the fly. */
2430 YY_("syntax error, unexpected %s");
2431 YY_("syntax error, unexpected %s, expecting %s");
2432 YY_("syntax error, unexpected %s, expecting %s or %s");
2433 YY_("syntax error, unexpected %s, expecting %s or %s or %s");
2434 YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
2438 static char const yyunexpected
[] = "syntax error, unexpected %s";
2439 static char const yyexpecting
[] = ", expecting %s";
2440 static char const yyor
[] = " or %s";
2441 char yyformat
[sizeof yyunexpected
2442 + sizeof yyexpecting
- 1
2443 + ((YYERROR_VERBOSE_ARGS_MAXIMUM
- 2)
2444 * (sizeof yyor
- 1))];
2445 char const *yyprefix
= yyexpecting
;
2447 /* Start YYX at -YYN if negative to avoid negative indexes in
2449 int yyxbegin
= yyn
< 0 ? -yyn
: 0;
2451 /* Stay within bounds of both yycheck and yytname. */
2452 int yychecklim
= YYLAST
- yyn
+ 1;
2453 int yyxend
= yychecklim
< YYNTOKENS
? yychecklim
: YYNTOKENS
;
2456 yyarg
[0] = yytname
[yytype
];
2457 yyfmt
= yystpcpy (yyformat
, yyunexpected
);
2459 for (yyx
= yyxbegin
; yyx
< yyxend
; ++yyx
)
2460 if (yycheck
[yyx
+ yyn
] == yyx
&& yyx
!= YYTERROR
)
2462 if (yycount
== YYERROR_VERBOSE_ARGS_MAXIMUM
)
2466 yyformat
[sizeof yyunexpected
- 1] = '\0';
2469 yyarg
[yycount
++] = yytname
[yyx
];
2470 yysize1
= yysize
+ yytnamerr (0, yytname
[yyx
]);
2471 yysize_overflow
|= (yysize1
< yysize
);
2473 yyfmt
= yystpcpy (yyfmt
, yyprefix
);
2477 yyf
= YY_(yyformat
);
2478 yysize1
= yysize
+ yystrlen (yyf
);
2479 yysize_overflow
|= (yysize1
< yysize
);
2482 if (yysize_overflow
)
2483 return YYSIZE_MAXIMUM
;
2487 /* Avoid sprintf, as that infringes on the user's name space.
2488 Don't have undefined behavior even if the translation
2489 produced a string with the wrong number of "%s"s. */
2490 char *yyp
= yyresult
;
2492 while ((*yyp
= *yyf
) != '\0')
2494 if (*yyp
== '%' && yyf
[1] == 's' && yyi
< yycount
)
2496 yyp
+= yytnamerr (yyp
, yyarg
[yyi
++]);
2509 #endif /* YYERROR_VERBOSE */
2512 /*-----------------------------------------------.
2513 | Release the memory associated to this symbol. |
2514 `-----------------------------------------------*/
2517 #if (defined __STDC__ || defined __C99__FUNC__ \
2518 || defined __cplusplus || defined _MSC_VER)
2520 yydestruct (const char *yymsg
, int yytype
, YYSTYPE
*yyvaluep
, YYLTYPE
*yylocationp
, struct _mesa_glsl_parse_state
*state
)
2523 yydestruct (yymsg
, yytype
, yyvaluep
, yylocationp
, state
)
2527 YYLTYPE
*yylocationp
;
2528 struct _mesa_glsl_parse_state
*state
;
2532 YYUSE (yylocationp
);
2537 YY_SYMBOL_PRINT (yymsg
, yytype
, yyvaluep
, yylocationp
);
2547 /* Prevent warnings from -Wmissing-prototypes. */
2548 #ifdef YYPARSE_PARAM
2549 #if defined __STDC__ || defined __cplusplus
2550 int yyparse (void *YYPARSE_PARAM
);
2554 #else /* ! YYPARSE_PARAM */
2555 #if defined __STDC__ || defined __cplusplus
2556 int yyparse (struct _mesa_glsl_parse_state
*state
);
2560 #endif /* ! YYPARSE_PARAM */
2566 /*-------------------------.
2567 | yyparse or yypush_parse. |
2568 `-------------------------*/
2570 #ifdef YYPARSE_PARAM
2571 #if (defined __STDC__ || defined __C99__FUNC__ \
2572 || defined __cplusplus || defined _MSC_VER)
2574 yyparse (void *YYPARSE_PARAM
)
2577 yyparse (YYPARSE_PARAM
)
2578 void *YYPARSE_PARAM
;
2580 #else /* ! YYPARSE_PARAM */
2581 #if (defined __STDC__ || defined __C99__FUNC__ \
2582 || defined __cplusplus || defined _MSC_VER)
2584 yyparse (struct _mesa_glsl_parse_state
*state
)
2588 struct _mesa_glsl_parse_state
*state
;
2592 /* The lookahead symbol. */
2595 /* The semantic value of the lookahead symbol. */
2598 /* Location data for the lookahead symbol. */
2601 /* Number of syntax errors so far. */
2605 /* Number of tokens to shift before error messages enabled. */
2608 /* The stacks and their tools:
2609 `yyss': related to states.
2610 `yyvs': related to semantic values.
2611 `yyls': related to locations.
2613 Refer to the stacks thru separate pointers, to allow yyoverflow
2614 to reallocate them elsewhere. */
2616 /* The state stack. */
2617 yytype_int16 yyssa
[YYINITDEPTH
];
2619 yytype_int16
*yyssp
;
2621 /* The semantic value stack. */
2622 YYSTYPE yyvsa
[YYINITDEPTH
];
2626 /* The location stack. */
2627 YYLTYPE yylsa
[YYINITDEPTH
];
2631 /* The locations where the error started and ended. */
2632 YYLTYPE yyerror_range
[3];
2634 YYSIZE_T yystacksize
;
2638 /* Lookahead token as an internal (translated) token number. */
2640 /* The variables used to return semantic value and location from the
2646 /* Buffer for error messages, and its allocated size. */
2648 char *yymsg
= yymsgbuf
;
2649 YYSIZE_T yymsg_alloc
= sizeof yymsgbuf
;
2652 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N), yylsp -= (N))
2654 /* The number of symbols on the RHS of the reduced rule.
2655 Keep to zero when no symbol should be popped. */
2662 yystacksize
= YYINITDEPTH
;
2664 YYDPRINTF ((stderr
, "Starting parse\n"));
2669 yychar
= YYEMPTY
; /* Cause a token to be read. */
2671 /* Initialize stack pointers.
2672 Waste one element of value and location stack
2673 so that they stay on the same level as the state stack.
2674 The wasted elements are never initialized. */
2679 #if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
2680 /* Initialize the default location before parsing starts. */
2681 yylloc
.first_line
= yylloc
.last_line
= 1;
2682 yylloc
.first_column
= yylloc
.last_column
= 1;
2685 /* User initialization code. */
2687 /* Line 1251 of yacc.c */
2688 #line 41 "glsl_parser.ypp"
2690 yylloc
.first_line
= 1;
2691 yylloc
.first_column
= 1;
2692 yylloc
.last_line
= 1;
2693 yylloc
.last_column
= 1;
2697 /* Line 1251 of yacc.c */
2698 #line 2699 "glsl_parser.cpp"
2703 /*------------------------------------------------------------.
2704 | yynewstate -- Push a new state, which is found in yystate. |
2705 `------------------------------------------------------------*/
2707 /* In all cases, when you get here, the value and location stacks
2708 have just been pushed. So pushing a state here evens the stacks. */
2714 if (yyss
+ yystacksize
- 1 <= yyssp
)
2716 /* Get the current used size of the three stacks, in elements. */
2717 YYSIZE_T yysize
= yyssp
- yyss
+ 1;
2721 /* Give user a chance to reallocate the stack. Use copies of
2722 these so that the &'s don't force the real ones into
2724 YYSTYPE
*yyvs1
= yyvs
;
2725 yytype_int16
*yyss1
= yyss
;
2726 YYLTYPE
*yyls1
= yyls
;
2728 /* Each stack pointer address is followed by the size of the
2729 data in use in that stack, in bytes. This used to be a
2730 conditional around just the two extra args, but that might
2731 be undefined if yyoverflow is a macro. */
2732 yyoverflow (YY_("memory exhausted"),
2733 &yyss1
, yysize
* sizeof (*yyssp
),
2734 &yyvs1
, yysize
* sizeof (*yyvsp
),
2735 &yyls1
, yysize
* sizeof (*yylsp
),
2742 #else /* no yyoverflow */
2743 # ifndef YYSTACK_RELOCATE
2744 goto yyexhaustedlab
;
2746 /* Extend the stack our own way. */
2747 if (YYMAXDEPTH
<= yystacksize
)
2748 goto yyexhaustedlab
;
2750 if (YYMAXDEPTH
< yystacksize
)
2751 yystacksize
= YYMAXDEPTH
;
2754 yytype_int16
*yyss1
= yyss
;
2755 union yyalloc
*yyptr
=
2756 (union yyalloc
*) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize
));
2758 goto yyexhaustedlab
;
2759 YYSTACK_RELOCATE (yyss_alloc
, yyss
);
2760 YYSTACK_RELOCATE (yyvs_alloc
, yyvs
);
2761 YYSTACK_RELOCATE (yyls_alloc
, yyls
);
2762 # undef YYSTACK_RELOCATE
2764 YYSTACK_FREE (yyss1
);
2767 #endif /* no yyoverflow */
2769 yyssp
= yyss
+ yysize
- 1;
2770 yyvsp
= yyvs
+ yysize
- 1;
2771 yylsp
= yyls
+ yysize
- 1;
2773 YYDPRINTF ((stderr
, "Stack size increased to %lu\n",
2774 (unsigned long int) yystacksize
));
2776 if (yyss
+ yystacksize
- 1 <= yyssp
)
2780 YYDPRINTF ((stderr
, "Entering state %d\n", yystate
));
2782 if (yystate
== YYFINAL
)
2792 /* Do appropriate processing given the current state. Read a
2793 lookahead token if we need one and don't already have one. */
2795 /* First try to decide what to do without reference to lookahead token. */
2796 yyn
= yypact
[yystate
];
2797 if (yyn
== YYPACT_NINF
)
2800 /* Not known => get a lookahead token if don't already have one. */
2802 /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
2803 if (yychar
== YYEMPTY
)
2805 YYDPRINTF ((stderr
, "Reading a token: "));
2809 if (yychar
<= YYEOF
)
2811 yychar
= yytoken
= YYEOF
;
2812 YYDPRINTF ((stderr
, "Now at end of input.\n"));
2816 yytoken
= YYTRANSLATE (yychar
);
2817 YY_SYMBOL_PRINT ("Next token is", yytoken
, &yylval
, &yylloc
);
2820 /* If the proper action on seeing token YYTOKEN is to reduce or to
2821 detect an error, take that action. */
2823 if (yyn
< 0 || YYLAST
< yyn
|| yycheck
[yyn
] != yytoken
)
2828 if (yyn
== 0 || yyn
== YYTABLE_NINF
)
2834 /* Count tokens shifted since error; after three, turn off error
2839 /* Shift the lookahead token. */
2840 YY_SYMBOL_PRINT ("Shifting", yytoken
, &yylval
, &yylloc
);
2842 /* Discard the shifted token. */
2851 /*-----------------------------------------------------------.
2852 | yydefault -- do the default action for the current state. |
2853 `-----------------------------------------------------------*/
2855 yyn
= yydefact
[yystate
];
2861 /*-----------------------------.
2862 | yyreduce -- Do a reduction. |
2863 `-----------------------------*/
2865 /* yyn is the number of a rule to reduce with. */
2868 /* If YYLEN is nonzero, implement the default value of the action:
2871 Otherwise, the following line sets YYVAL to garbage.
2872 This behavior is undocumented and Bison
2873 users should not rely upon it. Assigning to YYVAL
2874 unconditionally makes the parser a bit smaller, and it avoids a
2875 GCC warning that YYVAL may be used uninitialized. */
2876 yyval
= yyvsp
[1-yylen
];
2878 /* Default location. */
2879 YYLLOC_DEFAULT (yyloc
, (yylsp
- yylen
), yylen
);
2880 YY_REDUCE_PRINT (yyn
);
2885 /* Line 1464 of yacc.c */
2886 #line 209 "glsl_parser.ypp"
2888 _mesa_glsl_initialize_types(state
);
2894 /* Line 1464 of yacc.c */
2895 #line 217 "glsl_parser.ypp"
2897 state
->language_version
= 110;
2898 state
->symbols
->language_version
= 110;
2904 /* Line 1464 of yacc.c */
2905 #line 222 "glsl_parser.ypp"
2907 switch ((yyvsp
[(2) - (3)].n
)) {
2911 /* FINISHME: Check against implementation support versions. */
2912 state
->language_version
= (yyvsp
[(2) - (3)].n
);
2913 state
->symbols
->language_version
= (yyvsp
[(2) - (3)].n
);
2916 _mesa_glsl_error(& (yylsp
[(2) - (3)]), state
, "Shading language version"
2917 "%u is not supported\n", (yyvsp
[(2) - (3)].n
));
2925 /* Line 1464 of yacc.c */
2926 #line 246 "glsl_parser.ypp"
2928 if (!_mesa_glsl_process_extension((yyvsp
[(2) - (5)].identifier
), & (yylsp
[(2) - (5)]), (yyvsp
[(4) - (5)].identifier
), & (yylsp
[(4) - (5)]), state
)) {
2936 /* Line 1464 of yacc.c */
2937 #line 255 "glsl_parser.ypp"
2939 /* FINISHME: The NULL test is only required because 'precision'
2940 * FINISHME: statements are not yet supported.
2942 if ((yyvsp
[(1) - (1)].node
) != NULL
)
2943 state
->translation_unit
.push_tail(& (yyvsp
[(1) - (1)].node
)->link
);
2949 /* Line 1464 of yacc.c */
2950 #line 263 "glsl_parser.ypp"
2952 /* FINISHME: The NULL test is only required because 'precision'
2953 * FINISHME: statements are not yet supported.
2955 if ((yyvsp
[(2) - (2)].node
) != NULL
)
2956 state
->translation_unit
.push_tail(& (yyvsp
[(2) - (2)].node
)->link
);
2962 /* Line 1464 of yacc.c */
2963 #line 278 "glsl_parser.ypp"
2966 (yyval
.expression
) = new(ctx
) ast_expression(ast_identifier
, NULL
, NULL
, NULL
);
2967 (yyval
.expression
)->set_location(yylloc
);
2968 (yyval
.expression
)->primary_expression
.identifier
= (yyvsp
[(1) - (1)].identifier
);
2974 /* Line 1464 of yacc.c */
2975 #line 285 "glsl_parser.ypp"
2978 (yyval
.expression
) = new(ctx
) ast_expression(ast_int_constant
, NULL
, NULL
, NULL
);
2979 (yyval
.expression
)->set_location(yylloc
);
2980 (yyval
.expression
)->primary_expression
.int_constant
= (yyvsp
[(1) - (1)].n
);
2986 /* Line 1464 of yacc.c */
2987 #line 292 "glsl_parser.ypp"
2990 (yyval
.expression
) = new(ctx
) ast_expression(ast_uint_constant
, NULL
, NULL
, NULL
);
2991 (yyval
.expression
)->set_location(yylloc
);
2992 (yyval
.expression
)->primary_expression
.uint_constant
= (yyvsp
[(1) - (1)].n
);
2998 /* Line 1464 of yacc.c */
2999 #line 299 "glsl_parser.ypp"
3002 (yyval
.expression
) = new(ctx
) ast_expression(ast_float_constant
, NULL
, NULL
, NULL
);
3003 (yyval
.expression
)->set_location(yylloc
);
3004 (yyval
.expression
)->primary_expression
.float_constant
= (yyvsp
[(1) - (1)].real
);
3010 /* Line 1464 of yacc.c */
3011 #line 306 "glsl_parser.ypp"
3014 (yyval
.expression
) = new(ctx
) ast_expression(ast_bool_constant
, NULL
, NULL
, NULL
);
3015 (yyval
.expression
)->set_location(yylloc
);
3016 (yyval
.expression
)->primary_expression
.bool_constant
= (yyvsp
[(1) - (1)].n
);
3022 /* Line 1464 of yacc.c */
3023 #line 313 "glsl_parser.ypp"
3025 (yyval
.expression
) = (yyvsp
[(2) - (3)].expression
);
3031 /* Line 1464 of yacc.c */
3032 #line 321 "glsl_parser.ypp"
3035 (yyval
.expression
) = new(ctx
) ast_expression(ast_array_index
, (yyvsp
[(1) - (4)].expression
), (yyvsp
[(3) - (4)].expression
), NULL
);
3036 (yyval
.expression
)->set_location(yylloc
);
3042 /* Line 1464 of yacc.c */
3043 #line 327 "glsl_parser.ypp"
3045 (yyval
.expression
) = (yyvsp
[(1) - (1)].expression
);
3051 /* Line 1464 of yacc.c */
3052 #line 331 "glsl_parser.ypp"
3055 (yyval
.expression
) = new(ctx
) ast_expression(ast_field_selection
, (yyvsp
[(1) - (3)].expression
), NULL
, NULL
);
3056 (yyval
.expression
)->set_location(yylloc
);
3057 (yyval
.expression
)->primary_expression
.identifier
= (yyvsp
[(3) - (3)].identifier
);
3063 /* Line 1464 of yacc.c */
3064 #line 338 "glsl_parser.ypp"
3067 (yyval
.expression
) = new(ctx
) ast_expression(ast_post_inc
, (yyvsp
[(1) - (2)].expression
), NULL
, NULL
);
3068 (yyval
.expression
)->set_location(yylloc
);
3074 /* Line 1464 of yacc.c */
3075 #line 344 "glsl_parser.ypp"
3078 (yyval
.expression
) = new(ctx
) ast_expression(ast_post_dec
, (yyvsp
[(1) - (2)].expression
), NULL
, NULL
);
3079 (yyval
.expression
)->set_location(yylloc
);
3085 /* Line 1464 of yacc.c */
3086 #line 362 "glsl_parser.ypp"
3089 (yyval
.expression
) = new(ctx
) ast_expression(ast_field_selection
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
), NULL
);
3090 (yyval
.expression
)->set_location(yylloc
);
3096 /* Line 1464 of yacc.c */
3097 #line 381 "glsl_parser.ypp"
3099 (yyval
.expression
) = (yyvsp
[(1) - (2)].expression
);
3100 (yyval
.expression
)->set_location(yylloc
);
3101 (yyval
.expression
)->expressions
.push_tail(& (yyvsp
[(2) - (2)].expression
)->link
);
3107 /* Line 1464 of yacc.c */
3108 #line 387 "glsl_parser.ypp"
3110 (yyval
.expression
) = (yyvsp
[(1) - (3)].expression
);
3111 (yyval
.expression
)->set_location(yylloc
);
3112 (yyval
.expression
)->expressions
.push_tail(& (yyvsp
[(3) - (3)].expression
)->link
);
3118 /* Line 1464 of yacc.c */
3119 #line 403 "glsl_parser.ypp"
3122 (yyval
.expression
) = new(ctx
) ast_function_expression((yyvsp
[(1) - (1)].type_specifier
));
3123 (yyval
.expression
)->set_location(yylloc
);
3129 /* Line 1464 of yacc.c */
3130 #line 409 "glsl_parser.ypp"
3133 ast_expression
*callee
= new(ctx
) ast_expression((yyvsp
[(1) - (1)].identifier
));
3134 (yyval
.expression
) = new(ctx
) ast_function_expression(callee
);
3135 (yyval
.expression
)->set_location(yylloc
);
3141 /* Line 1464 of yacc.c */
3142 #line 416 "glsl_parser.ypp"
3145 ast_expression
*callee
= new(ctx
) ast_expression((yyvsp
[(1) - (1)].identifier
));
3146 (yyval
.expression
) = new(ctx
) ast_function_expression(callee
);
3147 (yyval
.expression
)->set_location(yylloc
);
3153 /* Line 1464 of yacc.c */
3154 #line 428 "glsl_parser.ypp"
3157 (yyval
.expression
) = new(ctx
) ast_expression(ast_pre_inc
, (yyvsp
[(2) - (2)].expression
), NULL
, NULL
);
3158 (yyval
.expression
)->set_location(yylloc
);
3164 /* Line 1464 of yacc.c */
3165 #line 434 "glsl_parser.ypp"
3168 (yyval
.expression
) = new(ctx
) ast_expression(ast_pre_dec
, (yyvsp
[(2) - (2)].expression
), NULL
, NULL
);
3169 (yyval
.expression
)->set_location(yylloc
);
3175 /* Line 1464 of yacc.c */
3176 #line 440 "glsl_parser.ypp"
3179 (yyval
.expression
) = new(ctx
) ast_expression((yyvsp
[(1) - (2)].n
), (yyvsp
[(2) - (2)].expression
), NULL
, NULL
);
3180 (yyval
.expression
)->set_location(yylloc
);
3186 /* Line 1464 of yacc.c */
3187 #line 449 "glsl_parser.ypp"
3188 { (yyval
.n
) = ast_plus
; ;}
3193 /* Line 1464 of yacc.c */
3194 #line 450 "glsl_parser.ypp"
3195 { (yyval
.n
) = ast_neg
; ;}
3200 /* Line 1464 of yacc.c */
3201 #line 451 "glsl_parser.ypp"
3202 { (yyval
.n
) = ast_logic_not
; ;}
3207 /* Line 1464 of yacc.c */
3208 #line 452 "glsl_parser.ypp"
3209 { (yyval
.n
) = ast_bit_not
; ;}
3214 /* Line 1464 of yacc.c */
3215 #line 458 "glsl_parser.ypp"
3218 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_mul
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3219 (yyval
.expression
)->set_location(yylloc
);
3225 /* Line 1464 of yacc.c */
3226 #line 464 "glsl_parser.ypp"
3229 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_div
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3230 (yyval
.expression
)->set_location(yylloc
);
3236 /* Line 1464 of yacc.c */
3237 #line 470 "glsl_parser.ypp"
3240 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_mod
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3241 (yyval
.expression
)->set_location(yylloc
);
3247 /* Line 1464 of yacc.c */
3248 #line 480 "glsl_parser.ypp"
3251 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_add
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3252 (yyval
.expression
)->set_location(yylloc
);
3258 /* Line 1464 of yacc.c */
3259 #line 486 "glsl_parser.ypp"
3262 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_sub
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3263 (yyval
.expression
)->set_location(yylloc
);
3269 /* Line 1464 of yacc.c */
3270 #line 496 "glsl_parser.ypp"
3273 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_lshift
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3274 (yyval
.expression
)->set_location(yylloc
);
3280 /* Line 1464 of yacc.c */
3281 #line 502 "glsl_parser.ypp"
3284 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_rshift
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3285 (yyval
.expression
)->set_location(yylloc
);
3291 /* Line 1464 of yacc.c */
3292 #line 512 "glsl_parser.ypp"
3295 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_less
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3296 (yyval
.expression
)->set_location(yylloc
);
3302 /* Line 1464 of yacc.c */
3303 #line 518 "glsl_parser.ypp"
3306 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_greater
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3307 (yyval
.expression
)->set_location(yylloc
);
3313 /* Line 1464 of yacc.c */
3314 #line 524 "glsl_parser.ypp"
3317 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_lequal
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3318 (yyval
.expression
)->set_location(yylloc
);
3324 /* Line 1464 of yacc.c */
3325 #line 530 "glsl_parser.ypp"
3328 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_gequal
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3329 (yyval
.expression
)->set_location(yylloc
);
3335 /* Line 1464 of yacc.c */
3336 #line 540 "glsl_parser.ypp"
3339 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_equal
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3340 (yyval
.expression
)->set_location(yylloc
);
3346 /* Line 1464 of yacc.c */
3347 #line 546 "glsl_parser.ypp"
3350 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_nequal
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3351 (yyval
.expression
)->set_location(yylloc
);
3357 /* Line 1464 of yacc.c */
3358 #line 556 "glsl_parser.ypp"
3361 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_bit_or
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3362 (yyval
.expression
)->set_location(yylloc
);
3368 /* Line 1464 of yacc.c */
3369 #line 566 "glsl_parser.ypp"
3372 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_bit_xor
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3373 (yyval
.expression
)->set_location(yylloc
);
3379 /* Line 1464 of yacc.c */
3380 #line 576 "glsl_parser.ypp"
3383 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_bit_or
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3384 (yyval
.expression
)->set_location(yylloc
);
3390 /* Line 1464 of yacc.c */
3391 #line 586 "glsl_parser.ypp"
3394 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_logic_and
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3395 (yyval
.expression
)->set_location(yylloc
);
3401 /* Line 1464 of yacc.c */
3402 #line 596 "glsl_parser.ypp"
3405 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_logic_xor
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3406 (yyval
.expression
)->set_location(yylloc
);
3412 /* Line 1464 of yacc.c */
3413 #line 606 "glsl_parser.ypp"
3416 (yyval
.expression
) = new(ctx
) ast_expression_bin(ast_logic_or
, (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
));
3417 (yyval
.expression
)->set_location(yylloc
);
3423 /* Line 1464 of yacc.c */
3424 #line 616 "glsl_parser.ypp"
3427 (yyval
.expression
) = new(ctx
) ast_expression(ast_conditional
, (yyvsp
[(1) - (5)].expression
), (yyvsp
[(3) - (5)].expression
), (yyvsp
[(5) - (5)].expression
));
3428 (yyval
.expression
)->set_location(yylloc
);
3434 /* Line 1464 of yacc.c */
3435 #line 626 "glsl_parser.ypp"
3438 (yyval
.expression
) = new(ctx
) ast_expression((yyvsp
[(2) - (3)].n
), (yyvsp
[(1) - (3)].expression
), (yyvsp
[(3) - (3)].expression
), NULL
);
3439 (yyval
.expression
)->set_location(yylloc
);
3445 /* Line 1464 of yacc.c */
3446 #line 634 "glsl_parser.ypp"
3447 { (yyval
.n
) = ast_assign
; ;}
3452 /* Line 1464 of yacc.c */
3453 #line 635 "glsl_parser.ypp"
3454 { (yyval
.n
) = ast_mul_assign
; ;}
3459 /* Line 1464 of yacc.c */
3460 #line 636 "glsl_parser.ypp"
3461 { (yyval
.n
) = ast_div_assign
; ;}
3466 /* Line 1464 of yacc.c */
3467 #line 637 "glsl_parser.ypp"
3468 { (yyval
.n
) = ast_mod_assign
; ;}
3473 /* Line 1464 of yacc.c */
3474 #line 638 "glsl_parser.ypp"
3475 { (yyval
.n
) = ast_add_assign
; ;}
3480 /* Line 1464 of yacc.c */
3481 #line 639 "glsl_parser.ypp"
3482 { (yyval
.n
) = ast_sub_assign
; ;}
3487 /* Line 1464 of yacc.c */
3488 #line 640 "glsl_parser.ypp"
3489 { (yyval
.n
) = ast_ls_assign
; ;}
3494 /* Line 1464 of yacc.c */
3495 #line 641 "glsl_parser.ypp"
3496 { (yyval
.n
) = ast_rs_assign
; ;}
3501 /* Line 1464 of yacc.c */
3502 #line 642 "glsl_parser.ypp"
3503 { (yyval
.n
) = ast_and_assign
; ;}
3508 /* Line 1464 of yacc.c */
3509 #line 643 "glsl_parser.ypp"
3510 { (yyval
.n
) = ast_xor_assign
; ;}
3515 /* Line 1464 of yacc.c */
3516 #line 644 "glsl_parser.ypp"
3517 { (yyval
.n
) = ast_or_assign
; ;}
3522 /* Line 1464 of yacc.c */
3523 #line 649 "glsl_parser.ypp"
3525 (yyval
.expression
) = (yyvsp
[(1) - (1)].expression
);
3531 /* Line 1464 of yacc.c */
3532 #line 653 "glsl_parser.ypp"
3535 if ((yyvsp
[(1) - (3)].expression
)->oper
!= ast_sequence
) {
3536 (yyval
.expression
) = new(ctx
) ast_expression(ast_sequence
, NULL
, NULL
, NULL
);
3537 (yyval
.expression
)->set_location(yylloc
);
3538 (yyval
.expression
)->expressions
.push_tail(& (yyvsp
[(1) - (3)].expression
)->link
);
3540 (yyval
.expression
) = (yyvsp
[(1) - (3)].expression
);
3543 (yyval
.expression
)->expressions
.push_tail(& (yyvsp
[(3) - (3)].expression
)->link
);
3549 /* Line 1464 of yacc.c */
3550 #line 673 "glsl_parser.ypp"
3552 (yyval
.node
) = (yyvsp
[(1) - (2)].function
);
3558 /* Line 1464 of yacc.c */
3559 #line 677 "glsl_parser.ypp"
3561 (yyval
.node
) = (yyvsp
[(1) - (2)].declarator_list
);
3567 /* Line 1464 of yacc.c */
3568 #line 681 "glsl_parser.ypp"
3570 if (((yyvsp
[(3) - (4)].type_specifier
)->type_specifier
!= ast_float
)
3571 && ((yyvsp
[(3) - (4)].type_specifier
)->type_specifier
!= ast_int
)) {
3572 _mesa_glsl_error(& (yylsp
[(3) - (4)]), state
, "global precision qualifier can "
3573 "only be applied to `int' or `float'\n");
3577 (yyval
.node
) = NULL
; /* FINISHME */
3583 /* Line 1464 of yacc.c */
3584 #line 704 "glsl_parser.ypp"
3586 (yyval
.function
) = (yyvsp
[(1) - (2)].function
);
3587 (yyval
.function
)->parameters
.push_tail(& (yyvsp
[(2) - (2)].parameter_declarator
)->link
);
3593 /* Line 1464 of yacc.c */
3594 #line 709 "glsl_parser.ypp"
3596 (yyval
.function
) = (yyvsp
[(1) - (3)].function
);
3597 (yyval
.function
)->parameters
.push_tail(& (yyvsp
[(3) - (3)].parameter_declarator
)->link
);
3603 /* Line 1464 of yacc.c */
3604 #line 717 "glsl_parser.ypp"
3607 (yyval
.function
) = new(ctx
) ast_function();
3608 (yyval
.function
)->set_location(yylloc
);
3609 (yyval
.function
)->return_type
= (yyvsp
[(1) - (3)].fully_specified_type
);
3610 (yyval
.function
)->identifier
= (yyvsp
[(2) - (3)].identifier
);
3616 /* Line 1464 of yacc.c */
3617 #line 728 "glsl_parser.ypp"
3620 (yyval
.parameter_declarator
) = new(ctx
) ast_parameter_declarator();
3621 (yyval
.parameter_declarator
)->set_location(yylloc
);
3622 (yyval
.parameter_declarator
)->type
= new(ctx
) ast_fully_specified_type();
3623 (yyval
.parameter_declarator
)->type
->set_location(yylloc
);
3624 (yyval
.parameter_declarator
)->type
->specifier
= (yyvsp
[(1) - (2)].type_specifier
);
3625 (yyval
.parameter_declarator
)->identifier
= (yyvsp
[(2) - (2)].identifier
);
3631 /* Line 1464 of yacc.c */
3632 #line 738 "glsl_parser.ypp"
3635 (yyval
.parameter_declarator
) = new(ctx
) ast_parameter_declarator();
3636 (yyval
.parameter_declarator
)->set_location(yylloc
);
3637 (yyval
.parameter_declarator
)->type
= new(ctx
) ast_fully_specified_type();
3638 (yyval
.parameter_declarator
)->type
->set_location(yylloc
);
3639 (yyval
.parameter_declarator
)->type
->specifier
= (yyvsp
[(1) - (5)].type_specifier
);
3640 (yyval
.parameter_declarator
)->identifier
= (yyvsp
[(2) - (5)].identifier
);
3641 (yyval
.parameter_declarator
)->is_array
= true;
3642 (yyval
.parameter_declarator
)->array_size
= (yyvsp
[(4) - (5)].expression
);
3648 /* Line 1464 of yacc.c */
3649 #line 753 "glsl_parser.ypp"
3651 (yyvsp
[(1) - (3)].type_qualifier
).i
|= (yyvsp
[(2) - (3)].type_qualifier
).i
;
3653 (yyval
.parameter_declarator
) = (yyvsp
[(3) - (3)].parameter_declarator
);
3654 (yyval
.parameter_declarator
)->type
->qualifier
= (yyvsp
[(1) - (3)].type_qualifier
).q
;
3660 /* Line 1464 of yacc.c */
3661 #line 760 "glsl_parser.ypp"
3663 (yyval
.parameter_declarator
) = (yyvsp
[(2) - (2)].parameter_declarator
);
3664 (yyval
.parameter_declarator
)->type
->qualifier
= (yyvsp
[(1) - (2)].type_qualifier
).q
;
3670 /* Line 1464 of yacc.c */
3671 #line 765 "glsl_parser.ypp"
3674 (yyvsp
[(1) - (3)].type_qualifier
).i
|= (yyvsp
[(2) - (3)].type_qualifier
).i
;
3676 (yyval
.parameter_declarator
) = new(ctx
) ast_parameter_declarator();
3677 (yyval
.parameter_declarator
)->set_location(yylloc
);
3678 (yyval
.parameter_declarator
)->type
= new(ctx
) ast_fully_specified_type();
3679 (yyval
.parameter_declarator
)->type
->qualifier
= (yyvsp
[(1) - (3)].type_qualifier
).q
;
3680 (yyval
.parameter_declarator
)->type
->specifier
= (yyvsp
[(3) - (3)].type_specifier
);
3686 /* Line 1464 of yacc.c */
3687 #line 776 "glsl_parser.ypp"
3690 (yyval
.parameter_declarator
) = new(ctx
) ast_parameter_declarator();
3691 (yyval
.parameter_declarator
)->set_location(yylloc
);
3692 (yyval
.parameter_declarator
)->type
= new(ctx
) ast_fully_specified_type();
3693 (yyval
.parameter_declarator
)->type
->qualifier
= (yyvsp
[(1) - (2)].type_qualifier
).q
;
3694 (yyval
.parameter_declarator
)->type
->specifier
= (yyvsp
[(2) - (2)].type_specifier
);
3700 /* Line 1464 of yacc.c */
3701 #line 787 "glsl_parser.ypp"
3702 { (yyval
.type_qualifier
).i
= 0; ;}
3707 /* Line 1464 of yacc.c */
3708 #line 788 "glsl_parser.ypp"
3709 { (yyval
.type_qualifier
).i
= 0; (yyval
.type_qualifier
).q
.in
= 1; ;}
3714 /* Line 1464 of yacc.c */
3715 #line 789 "glsl_parser.ypp"
3716 { (yyval
.type_qualifier
).i
= 0; (yyval
.type_qualifier
).q
.out
= 1; ;}
3721 /* Line 1464 of yacc.c */
3722 #line 790 "glsl_parser.ypp"
3723 { (yyval
.type_qualifier
).i
= 0; (yyval
.type_qualifier
).q
.in
= 1; (yyval
.type_qualifier
).q
.out
= 1; ;}
3728 /* Line 1464 of yacc.c */
3729 #line 800 "glsl_parser.ypp"
3732 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(3) - (3)].identifier
), false, NULL
, NULL
);
3733 decl
->set_location(yylloc
);
3735 (yyval
.declarator_list
) = (yyvsp
[(1) - (3)].declarator_list
);
3736 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3742 /* Line 1464 of yacc.c */
3743 #line 809 "glsl_parser.ypp"
3746 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(3) - (5)].identifier
), true, NULL
, NULL
);
3747 decl
->set_location(yylloc
);
3749 (yyval
.declarator_list
) = (yyvsp
[(1) - (5)].declarator_list
);
3750 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3756 /* Line 1464 of yacc.c */
3757 #line 818 "glsl_parser.ypp"
3760 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(3) - (6)].identifier
), true, (yyvsp
[(5) - (6)].expression
), NULL
);
3761 decl
->set_location(yylloc
);
3763 (yyval
.declarator_list
) = (yyvsp
[(1) - (6)].declarator_list
);
3764 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3770 /* Line 1464 of yacc.c */
3771 #line 827 "glsl_parser.ypp"
3774 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(3) - (7)].identifier
), true, NULL
, (yyvsp
[(7) - (7)].expression
));
3775 decl
->set_location(yylloc
);
3777 (yyval
.declarator_list
) = (yyvsp
[(1) - (7)].declarator_list
);
3778 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3784 /* Line 1464 of yacc.c */
3785 #line 836 "glsl_parser.ypp"
3788 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(3) - (8)].identifier
), true, (yyvsp
[(5) - (8)].expression
), (yyvsp
[(8) - (8)].expression
));
3789 decl
->set_location(yylloc
);
3791 (yyval
.declarator_list
) = (yyvsp
[(1) - (8)].declarator_list
);
3792 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3798 /* Line 1464 of yacc.c */
3799 #line 845 "glsl_parser.ypp"
3802 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(3) - (5)].identifier
), false, NULL
, (yyvsp
[(5) - (5)].expression
));
3803 decl
->set_location(yylloc
);
3805 (yyval
.declarator_list
) = (yyvsp
[(1) - (5)].declarator_list
);
3806 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3812 /* Line 1464 of yacc.c */
3813 #line 858 "glsl_parser.ypp"
3816 if ((yyvsp
[(1) - (1)].fully_specified_type
)->specifier
->type_specifier
!= ast_struct
) {
3817 _mesa_glsl_error(& (yylsp
[(1) - (1)]), state
, "empty declaration list\n");
3820 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list((yyvsp
[(1) - (1)].fully_specified_type
));
3821 (yyval
.declarator_list
)->set_location(yylloc
);
3828 /* Line 1464 of yacc.c */
3829 #line 869 "glsl_parser.ypp"
3832 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(2) - (2)].identifier
), false, NULL
, NULL
);
3834 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list((yyvsp
[(1) - (2)].fully_specified_type
));
3835 (yyval
.declarator_list
)->set_location(yylloc
);
3836 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3842 /* Line 1464 of yacc.c */
3843 #line 878 "glsl_parser.ypp"
3846 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(2) - (4)].identifier
), true, NULL
, NULL
);
3848 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list((yyvsp
[(1) - (4)].fully_specified_type
));
3849 (yyval
.declarator_list
)->set_location(yylloc
);
3850 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3856 /* Line 1464 of yacc.c */
3857 #line 887 "glsl_parser.ypp"
3860 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(2) - (5)].identifier
), true, (yyvsp
[(4) - (5)].expression
), NULL
);
3862 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list((yyvsp
[(1) - (5)].fully_specified_type
));
3863 (yyval
.declarator_list
)->set_location(yylloc
);
3864 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3870 /* Line 1464 of yacc.c */
3871 #line 896 "glsl_parser.ypp"
3874 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(2) - (6)].identifier
), true, NULL
, (yyvsp
[(6) - (6)].expression
));
3876 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list((yyvsp
[(1) - (6)].fully_specified_type
));
3877 (yyval
.declarator_list
)->set_location(yylloc
);
3878 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3884 /* Line 1464 of yacc.c */
3885 #line 905 "glsl_parser.ypp"
3888 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(2) - (7)].identifier
), true, (yyvsp
[(4) - (7)].expression
), (yyvsp
[(7) - (7)].expression
));
3890 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list((yyvsp
[(1) - (7)].fully_specified_type
));
3891 (yyval
.declarator_list
)->set_location(yylloc
);
3892 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3898 /* Line 1464 of yacc.c */
3899 #line 914 "glsl_parser.ypp"
3902 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(2) - (4)].identifier
), false, NULL
, (yyvsp
[(4) - (4)].expression
));
3904 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list((yyvsp
[(1) - (4)].fully_specified_type
));
3905 (yyval
.declarator_list
)->set_location(yylloc
);
3906 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3912 /* Line 1464 of yacc.c */
3913 #line 923 "glsl_parser.ypp"
3916 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(2) - (2)].identifier
), false, NULL
, NULL
);
3918 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list(NULL
);
3919 (yyval
.declarator_list
)->set_location(yylloc
);
3920 (yyval
.declarator_list
)->invariant
= true;
3922 (yyval
.declarator_list
)->declarations
.push_tail(&decl
->link
);
3928 /* Line 1464 of yacc.c */
3929 #line 937 "glsl_parser.ypp"
3932 (yyval
.fully_specified_type
) = new(ctx
) ast_fully_specified_type();
3933 (yyval
.fully_specified_type
)->set_location(yylloc
);
3934 (yyval
.fully_specified_type
)->specifier
= (yyvsp
[(1) - (1)].type_specifier
);
3940 /* Line 1464 of yacc.c */
3941 #line 944 "glsl_parser.ypp"
3944 (yyval
.fully_specified_type
) = new(ctx
) ast_fully_specified_type();
3945 (yyval
.fully_specified_type
)->set_location(yylloc
);
3946 (yyval
.fully_specified_type
)->qualifier
= (yyvsp
[(1) - (2)].type_qualifier
).q
;
3947 (yyval
.fully_specified_type
)->specifier
= (yyvsp
[(2) - (2)].type_specifier
);
3953 /* Line 1464 of yacc.c */
3954 #line 954 "glsl_parser.ypp"
3955 { (yyval
.type_qualifier
).i
= 0; ;}
3960 /* Line 1464 of yacc.c */
3961 #line 960 "glsl_parser.ypp"
3963 (yyval
.type_qualifier
) = (yyvsp
[(3) - (4)].type_qualifier
);
3969 /* Line 1464 of yacc.c */
3970 #line 968 "glsl_parser.ypp"
3972 (yyval
.type_qualifier
).i
= (yyvsp
[(1) - (3)].type_qualifier
).i
| (yyvsp
[(3) - (3)].type_qualifier
).i
;
3978 /* Line 1464 of yacc.c */
3979 #line 975 "glsl_parser.ypp"
3981 (yyval
.type_qualifier
).i
= 0;
3983 if (state
->ARB_fragment_coord_conventions_enable
) {
3984 bool got_one
= false;
3986 if (strcmp((yyvsp
[(1) - (1)].identifier
), "origin_upper_left") == 0) {
3988 (yyval
.type_qualifier
).q
.origin_upper_left
= 1;
3989 } else if (strcmp((yyvsp
[(1) - (1)].identifier
), "pixel_center_integer") == 0) {
3991 (yyval
.type_qualifier
).q
.pixel_center_integer
= 1;
3994 if (state
->ARB_fragment_coord_conventions_warn
&& got_one
) {
3995 _mesa_glsl_warning(& (yylsp
[(1) - (1)]), state
,
3996 "GL_ARB_fragment_coord_conventions layout "
3997 "identifier `%s' used\n", (yyvsp
[(1) - (1)].identifier
));
4001 /* If the identifier didn't match any known layout identifiers,
4004 if ((yyval
.type_qualifier
).i
== 0) {
4005 _mesa_glsl_error(& (yylsp
[(1) - (1)]), state
, "unrecognized layout identifier "
4006 "`%s'\n", (yyvsp
[(1) - (1)].identifier
));
4014 /* Line 1464 of yacc.c */
4015 #line 1008 "glsl_parser.ypp"
4016 { (yyval
.type_qualifier
).i
= 0; (yyval
.type_qualifier
).q
.smooth
= 1; ;}
4021 /* Line 1464 of yacc.c */
4022 #line 1009 "glsl_parser.ypp"
4023 { (yyval
.type_qualifier
).i
= 0; (yyval
.type_qualifier
).q
.flat
= 1; ;}
4028 /* Line 1464 of yacc.c */
4029 #line 1010 "glsl_parser.ypp"
4030 { (yyval
.type_qualifier
).i
= 0; (yyval
.type_qualifier
).q
.noperspective
= 1; ;}
4035 /* Line 1464 of yacc.c */
4036 #line 1014 "glsl_parser.ypp"
4037 { (yyval
.type_qualifier
).i
= 0; (yyval
.type_qualifier
).q
.constant
= 1; ;}
4042 /* Line 1464 of yacc.c */
4043 #line 1020 "glsl_parser.ypp"
4045 (yyval
.type_qualifier
).i
= (yyvsp
[(1) - (2)].type_qualifier
).i
| (yyvsp
[(2) - (2)].type_qualifier
).i
;
4051 /* Line 1464 of yacc.c */
4052 #line 1024 "glsl_parser.ypp"
4054 (yyval
.type_qualifier
) = (yyvsp
[(2) - (2)].type_qualifier
);
4055 (yyval
.type_qualifier
).q
.invariant
= 1;
4061 /* Line 1464 of yacc.c */
4062 #line 1031 "glsl_parser.ypp"
4063 { (yyval
.type_qualifier
).i
= 0; (yyval
.type_qualifier
).q
.constant
= 1; ;}
4068 /* Line 1464 of yacc.c */
4069 #line 1032 "glsl_parser.ypp"
4070 { (yyval
.type_qualifier
).i
= 0; (yyval
.type_qualifier
).q
.attribute
= 1; ;}
4075 /* Line 1464 of yacc.c */
4076 #line 1033 "glsl_parser.ypp"
4077 { (yyval
.type_qualifier
).i
= (yyvsp
[(1) - (2)].type_qualifier
).i
; (yyval
.type_qualifier
).q
.varying
= 1; ;}
4082 /* Line 1464 of yacc.c */
4083 #line 1034 "glsl_parser.ypp"
4084 { (yyval
.type_qualifier
).i
= 0; (yyval
.type_qualifier
).q
.centroid
= 1; (yyval
.type_qualifier
).q
.varying
= 1; ;}
4089 /* Line 1464 of yacc.c */
4090 #line 1035 "glsl_parser.ypp"
4091 { (yyval
.type_qualifier
).i
= 0; (yyval
.type_qualifier
).q
.in
= 1; ;}
4096 /* Line 1464 of yacc.c */
4097 #line 1036 "glsl_parser.ypp"
4098 { (yyval
.type_qualifier
).i
= 0; (yyval
.type_qualifier
).q
.out
= 1; ;}
4103 /* Line 1464 of yacc.c */
4104 #line 1037 "glsl_parser.ypp"
4105 { (yyval
.type_qualifier
).i
= 0; (yyval
.type_qualifier
).q
.centroid
= 1; (yyval
.type_qualifier
).q
.in
= 1; ;}
4110 /* Line 1464 of yacc.c */
4111 #line 1038 "glsl_parser.ypp"
4112 { (yyval
.type_qualifier
).i
= 0; (yyval
.type_qualifier
).q
.centroid
= 1; (yyval
.type_qualifier
).q
.out
= 1; ;}
4117 /* Line 1464 of yacc.c */
4118 #line 1039 "glsl_parser.ypp"
4119 { (yyval
.type_qualifier
).i
= 0; (yyval
.type_qualifier
).q
.uniform
= 1; ;}
4124 /* Line 1464 of yacc.c */
4125 #line 1045 "glsl_parser.ypp"
4127 (yyval
.type_specifier
) = (yyvsp
[(2) - (2)].type_specifier
);
4128 (yyval
.type_specifier
)->precision
= (yyvsp
[(1) - (2)].n
);
4134 /* Line 1464 of yacc.c */
4135 #line 1054 "glsl_parser.ypp"
4137 (yyval
.type_specifier
) = (yyvsp
[(1) - (3)].type_specifier
);
4138 (yyval
.type_specifier
)->is_array
= true;
4139 (yyval
.type_specifier
)->array_size
= NULL
;
4145 /* Line 1464 of yacc.c */
4146 #line 1060 "glsl_parser.ypp"
4148 (yyval
.type_specifier
) = (yyvsp
[(1) - (4)].type_specifier
);
4149 (yyval
.type_specifier
)->is_array
= true;
4150 (yyval
.type_specifier
)->array_size
= (yyvsp
[(3) - (4)].expression
);
4156 /* Line 1464 of yacc.c */
4157 #line 1069 "glsl_parser.ypp"
4160 (yyval
.type_specifier
) = new(ctx
) ast_type_specifier((yyvsp
[(1) - (1)].n
));
4161 (yyval
.type_specifier
)->set_location(yylloc
);
4167 /* Line 1464 of yacc.c */
4168 #line 1075 "glsl_parser.ypp"
4171 (yyval
.type_specifier
) = new(ctx
) ast_type_specifier((yyvsp
[(1) - (1)].struct_specifier
));
4172 (yyval
.type_specifier
)->set_location(yylloc
);
4178 /* Line 1464 of yacc.c */
4179 #line 1081 "glsl_parser.ypp"
4182 (yyval
.type_specifier
) = new(ctx
) ast_type_specifier((yyvsp
[(1) - (1)].identifier
));
4183 (yyval
.type_specifier
)->set_location(yylloc
);
4189 /* Line 1464 of yacc.c */
4190 #line 1089 "glsl_parser.ypp"
4191 { (yyval
.n
) = ast_void
; ;}
4196 /* Line 1464 of yacc.c */
4197 #line 1090 "glsl_parser.ypp"
4198 { (yyval
.n
) = ast_float
; ;}
4203 /* Line 1464 of yacc.c */
4204 #line 1091 "glsl_parser.ypp"
4205 { (yyval
.n
) = ast_int
; ;}
4210 /* Line 1464 of yacc.c */
4211 #line 1092 "glsl_parser.ypp"
4212 { (yyval
.n
) = ast_uint
; ;}
4217 /* Line 1464 of yacc.c */
4218 #line 1093 "glsl_parser.ypp"
4219 { (yyval
.n
) = ast_bool
; ;}
4224 /* Line 1464 of yacc.c */
4225 #line 1094 "glsl_parser.ypp"
4226 { (yyval
.n
) = ast_vec2
; ;}
4231 /* Line 1464 of yacc.c */
4232 #line 1095 "glsl_parser.ypp"
4233 { (yyval
.n
) = ast_vec3
; ;}
4238 /* Line 1464 of yacc.c */
4239 #line 1096 "glsl_parser.ypp"
4240 { (yyval
.n
) = ast_vec4
; ;}
4245 /* Line 1464 of yacc.c */
4246 #line 1097 "glsl_parser.ypp"
4247 { (yyval
.n
) = ast_bvec2
; ;}
4252 /* Line 1464 of yacc.c */
4253 #line 1098 "glsl_parser.ypp"
4254 { (yyval
.n
) = ast_bvec3
; ;}
4259 /* Line 1464 of yacc.c */
4260 #line 1099 "glsl_parser.ypp"
4261 { (yyval
.n
) = ast_bvec4
; ;}
4266 /* Line 1464 of yacc.c */
4267 #line 1100 "glsl_parser.ypp"
4268 { (yyval
.n
) = ast_ivec2
; ;}
4273 /* Line 1464 of yacc.c */
4274 #line 1101 "glsl_parser.ypp"
4275 { (yyval
.n
) = ast_ivec3
; ;}
4280 /* Line 1464 of yacc.c */
4281 #line 1102 "glsl_parser.ypp"
4282 { (yyval
.n
) = ast_ivec4
; ;}
4287 /* Line 1464 of yacc.c */
4288 #line 1103 "glsl_parser.ypp"
4289 { (yyval
.n
) = ast_uvec2
; ;}
4294 /* Line 1464 of yacc.c */
4295 #line 1104 "glsl_parser.ypp"
4296 { (yyval
.n
) = ast_uvec3
; ;}
4301 /* Line 1464 of yacc.c */
4302 #line 1105 "glsl_parser.ypp"
4303 { (yyval
.n
) = ast_uvec4
; ;}
4308 /* Line 1464 of yacc.c */
4309 #line 1106 "glsl_parser.ypp"
4310 { (yyval
.n
) = ast_mat2
; ;}
4315 /* Line 1464 of yacc.c */
4316 #line 1107 "glsl_parser.ypp"
4317 { (yyval
.n
) = ast_mat2x3
; ;}
4322 /* Line 1464 of yacc.c */
4323 #line 1108 "glsl_parser.ypp"
4324 { (yyval
.n
) = ast_mat2x4
; ;}
4329 /* Line 1464 of yacc.c */
4330 #line 1109 "glsl_parser.ypp"
4331 { (yyval
.n
) = ast_mat3x2
; ;}
4336 /* Line 1464 of yacc.c */
4337 #line 1110 "glsl_parser.ypp"
4338 { (yyval
.n
) = ast_mat3
; ;}
4343 /* Line 1464 of yacc.c */
4344 #line 1111 "glsl_parser.ypp"
4345 { (yyval
.n
) = ast_mat3x4
; ;}
4350 /* Line 1464 of yacc.c */
4351 #line 1112 "glsl_parser.ypp"
4352 { (yyval
.n
) = ast_mat4x2
; ;}
4357 /* Line 1464 of yacc.c */
4358 #line 1113 "glsl_parser.ypp"
4359 { (yyval
.n
) = ast_mat4x3
; ;}
4364 /* Line 1464 of yacc.c */
4365 #line 1114 "glsl_parser.ypp"
4366 { (yyval
.n
) = ast_mat4
; ;}
4371 /* Line 1464 of yacc.c */
4372 #line 1115 "glsl_parser.ypp"
4373 { (yyval
.n
) = ast_sampler1d
; ;}
4378 /* Line 1464 of yacc.c */
4379 #line 1116 "glsl_parser.ypp"
4380 { (yyval
.n
) = ast_sampler2d
; ;}
4385 /* Line 1464 of yacc.c */
4386 #line 1117 "glsl_parser.ypp"
4387 { (yyval
.n
) = ast_sampler2drect
; ;}
4392 /* Line 1464 of yacc.c */
4393 #line 1118 "glsl_parser.ypp"
4394 { (yyval
.n
) = ast_sampler3d
; ;}
4399 /* Line 1464 of yacc.c */
4400 #line 1119 "glsl_parser.ypp"
4401 { (yyval
.n
) = ast_samplercube
; ;}
4406 /* Line 1464 of yacc.c */
4407 #line 1120 "glsl_parser.ypp"
4408 { (yyval
.n
) = ast_sampler1dshadow
; ;}
4413 /* Line 1464 of yacc.c */
4414 #line 1121 "glsl_parser.ypp"
4415 { (yyval
.n
) = ast_sampler2dshadow
; ;}
4420 /* Line 1464 of yacc.c */
4421 #line 1122 "glsl_parser.ypp"
4422 { (yyval
.n
) = ast_sampler2drectshadow
; ;}
4427 /* Line 1464 of yacc.c */
4428 #line 1123 "glsl_parser.ypp"
4429 { (yyval
.n
) = ast_samplercubeshadow
; ;}
4434 /* Line 1464 of yacc.c */
4435 #line 1124 "glsl_parser.ypp"
4436 { (yyval
.n
) = ast_sampler1darray
; ;}
4441 /* Line 1464 of yacc.c */
4442 #line 1125 "glsl_parser.ypp"
4443 { (yyval
.n
) = ast_sampler2darray
; ;}
4448 /* Line 1464 of yacc.c */
4449 #line 1126 "glsl_parser.ypp"
4450 { (yyval
.n
) = ast_sampler1darrayshadow
; ;}
4455 /* Line 1464 of yacc.c */
4456 #line 1127 "glsl_parser.ypp"
4457 { (yyval
.n
) = ast_sampler2darrayshadow
; ;}
4462 /* Line 1464 of yacc.c */
4463 #line 1128 "glsl_parser.ypp"
4464 { (yyval
.n
) = ast_isampler1d
; ;}
4469 /* Line 1464 of yacc.c */
4470 #line 1129 "glsl_parser.ypp"
4471 { (yyval
.n
) = ast_isampler2d
; ;}
4476 /* Line 1464 of yacc.c */
4477 #line 1130 "glsl_parser.ypp"
4478 { (yyval
.n
) = ast_isampler3d
; ;}
4483 /* Line 1464 of yacc.c */
4484 #line 1131 "glsl_parser.ypp"
4485 { (yyval
.n
) = ast_isamplercube
; ;}
4490 /* Line 1464 of yacc.c */
4491 #line 1132 "glsl_parser.ypp"
4492 { (yyval
.n
) = ast_isampler1darray
; ;}
4497 /* Line 1464 of yacc.c */
4498 #line 1133 "glsl_parser.ypp"
4499 { (yyval
.n
) = ast_isampler2darray
; ;}
4504 /* Line 1464 of yacc.c */
4505 #line 1134 "glsl_parser.ypp"
4506 { (yyval
.n
) = ast_usampler1d
; ;}
4511 /* Line 1464 of yacc.c */
4512 #line 1135 "glsl_parser.ypp"
4513 { (yyval
.n
) = ast_usampler2d
; ;}
4518 /* Line 1464 of yacc.c */
4519 #line 1136 "glsl_parser.ypp"
4520 { (yyval
.n
) = ast_usampler3d
; ;}
4525 /* Line 1464 of yacc.c */
4526 #line 1137 "glsl_parser.ypp"
4527 { (yyval
.n
) = ast_usamplercube
; ;}
4532 /* Line 1464 of yacc.c */
4533 #line 1138 "glsl_parser.ypp"
4534 { (yyval
.n
) = ast_usampler1darray
; ;}
4539 /* Line 1464 of yacc.c */
4540 #line 1139 "glsl_parser.ypp"
4541 { (yyval
.n
) = ast_usampler2darray
; ;}
4546 /* Line 1464 of yacc.c */
4547 #line 1143 "glsl_parser.ypp"
4549 if (state
->language_version
< 130)
4550 _mesa_glsl_error(& (yylsp
[(1) - (1)]), state
,
4551 "precision qualifier forbidden "
4552 "in GLSL %d.%d (1.30 or later "
4554 state
->language_version
/ 100,
4555 state
->language_version
% 100);
4557 (yyval
.n
) = ast_precision_high
;
4563 /* Line 1464 of yacc.c */
4564 #line 1154 "glsl_parser.ypp"
4566 if (state
->language_version
< 130)
4567 _mesa_glsl_error(& (yylsp
[(1) - (1)]), state
,
4568 "precision qualifier forbidden "
4569 "in GLSL %d.%d (1.30 or later "
4571 state
->language_version
/ 100,
4572 state
->language_version
% 100);
4574 (yyval
.n
) = ast_precision_medium
;
4580 /* Line 1464 of yacc.c */
4581 #line 1165 "glsl_parser.ypp"
4583 if (state
->language_version
< 130)
4584 _mesa_glsl_error(& (yylsp
[(1) - (1)]), state
,
4585 "precision qualifier forbidden "
4586 "in GLSL %d.%d (1.30 or later "
4588 state
->language_version
/ 100,
4589 state
->language_version
% 100);
4591 (yyval
.n
) = ast_precision_low
;
4597 /* Line 1464 of yacc.c */
4598 #line 1180 "glsl_parser.ypp"
4601 (yyval
.struct_specifier
) = new(ctx
) ast_struct_specifier((yyvsp
[(2) - (5)].identifier
), (yyvsp
[(4) - (5)].node
));
4602 (yyval
.struct_specifier
)->set_location(yylloc
);
4608 /* Line 1464 of yacc.c */
4609 #line 1186 "glsl_parser.ypp"
4612 (yyval
.struct_specifier
) = new(ctx
) ast_struct_specifier(NULL
, (yyvsp
[(3) - (4)].node
));
4613 (yyval
.struct_specifier
)->set_location(yylloc
);
4619 /* Line 1464 of yacc.c */
4620 #line 1195 "glsl_parser.ypp"
4622 (yyval
.node
) = (ast_node
*) (yyvsp
[(1) - (1)].declarator_list
);
4623 (yyvsp
[(1) - (1)].declarator_list
)->link
.self_link();
4629 /* Line 1464 of yacc.c */
4630 #line 1200 "glsl_parser.ypp"
4632 (yyval
.node
) = (ast_node
*) (yyvsp
[(1) - (2)].node
);
4633 (yyval
.node
)->link
.insert_before(& (yyvsp
[(2) - (2)].declarator_list
)->link
);
4639 /* Line 1464 of yacc.c */
4640 #line 1208 "glsl_parser.ypp"
4643 ast_fully_specified_type
*type
= new(ctx
) ast_fully_specified_type();
4644 type
->set_location(yylloc
);
4646 type
->specifier
= (yyvsp
[(1) - (3)].type_specifier
);
4647 (yyval
.declarator_list
) = new(ctx
) ast_declarator_list(type
);
4648 (yyval
.declarator_list
)->set_location(yylloc
);
4650 (yyval
.declarator_list
)->declarations
.push_degenerate_list_at_head(& (yyvsp
[(2) - (3)].declaration
)->link
);
4656 /* Line 1464 of yacc.c */
4657 #line 1223 "glsl_parser.ypp"
4659 (yyval
.declaration
) = (yyvsp
[(1) - (1)].declaration
);
4660 (yyvsp
[(1) - (1)].declaration
)->link
.self_link();
4666 /* Line 1464 of yacc.c */
4667 #line 1228 "glsl_parser.ypp"
4669 (yyval
.declaration
) = (yyvsp
[(1) - (3)].declaration
);
4670 (yyval
.declaration
)->link
.insert_before(& (yyvsp
[(3) - (3)].declaration
)->link
);
4676 /* Line 1464 of yacc.c */
4677 #line 1236 "glsl_parser.ypp"
4680 (yyval
.declaration
) = new(ctx
) ast_declaration((yyvsp
[(1) - (1)].identifier
), false, NULL
, NULL
);
4681 (yyval
.declaration
)->set_location(yylloc
);
4687 /* Line 1464 of yacc.c */
4688 #line 1242 "glsl_parser.ypp"
4691 (yyval
.declaration
) = new(ctx
) ast_declaration((yyvsp
[(1) - (4)].identifier
), true, (yyvsp
[(3) - (4)].expression
), NULL
);
4692 (yyval
.declaration
)->set_location(yylloc
);
4698 /* Line 1464 of yacc.c */
4699 #line 1265 "glsl_parser.ypp"
4700 { (yyval
.node
) = (ast_node
*) (yyvsp
[(1) - (1)].compound_statement
); ;}
4705 /* Line 1464 of yacc.c */
4706 #line 1277 "glsl_parser.ypp"
4707 { (yyval
.node
) = NULL
; ;}
4712 /* Line 1464 of yacc.c */
4713 #line 1278 "glsl_parser.ypp"
4714 { (yyval
.node
) = NULL
; ;}
4719 /* Line 1464 of yacc.c */
4720 #line 1285 "glsl_parser.ypp"
4723 (yyval
.compound_statement
) = new(ctx
) ast_compound_statement(true, NULL
);
4724 (yyval
.compound_statement
)->set_location(yylloc
);
4730 /* Line 1464 of yacc.c */
4731 #line 1291 "glsl_parser.ypp"
4734 (yyval
.compound_statement
) = new(ctx
) ast_compound_statement(true, (yyvsp
[(2) - (3)].node
));
4735 (yyval
.compound_statement
)->set_location(yylloc
);
4741 /* Line 1464 of yacc.c */
4742 #line 1299 "glsl_parser.ypp"
4743 { (yyval
.node
) = (ast_node
*) (yyvsp
[(1) - (1)].compound_statement
); ;}
4748 /* Line 1464 of yacc.c */
4749 #line 1305 "glsl_parser.ypp"
4752 (yyval
.compound_statement
) = new(ctx
) ast_compound_statement(false, NULL
);
4753 (yyval
.compound_statement
)->set_location(yylloc
);
4759 /* Line 1464 of yacc.c */
4760 #line 1311 "glsl_parser.ypp"
4763 (yyval
.compound_statement
) = new(ctx
) ast_compound_statement(false, (yyvsp
[(2) - (3)].node
));
4764 (yyval
.compound_statement
)->set_location(yylloc
);
4770 /* Line 1464 of yacc.c */
4771 #line 1320 "glsl_parser.ypp"
4773 if ((yyvsp
[(1) - (1)].node
) == NULL
) {
4774 _mesa_glsl_error(& (yylsp
[(1) - (1)]), state
, "<nil> statement\n");
4775 assert((yyvsp
[(1) - (1)].node
) != NULL
);
4778 (yyval
.node
) = (yyvsp
[(1) - (1)].node
);
4779 (yyval
.node
)->link
.self_link();
4785 /* Line 1464 of yacc.c */
4786 #line 1330 "glsl_parser.ypp"
4788 if ((yyvsp
[(2) - (2)].node
) == NULL
) {
4789 _mesa_glsl_error(& (yylsp
[(2) - (2)]), state
, "<nil> statement\n");
4790 assert((yyvsp
[(2) - (2)].node
) != NULL
);
4792 (yyval
.node
) = (yyvsp
[(1) - (2)].node
);
4793 (yyval
.node
)->link
.insert_before(& (yyvsp
[(2) - (2)].node
)->link
);
4799 /* Line 1464 of yacc.c */
4800 #line 1342 "glsl_parser.ypp"
4803 (yyval
.node
) = new(ctx
) ast_expression_statement(NULL
);
4804 (yyval
.node
)->set_location(yylloc
);
4810 /* Line 1464 of yacc.c */
4811 #line 1348 "glsl_parser.ypp"
4814 (yyval
.node
) = new(ctx
) ast_expression_statement((yyvsp
[(1) - (2)].expression
));
4815 (yyval
.node
)->set_location(yylloc
);
4821 /* Line 1464 of yacc.c */
4822 #line 1357 "glsl_parser.ypp"
4825 (yyval
.node
) = new(ctx
) ast_selection_statement((yyvsp
[(3) - (7)].expression
), (yyvsp
[(5) - (7)].node
), (yyvsp
[(7) - (7)].node
));
4826 (yyval
.node
)->set_location(yylloc
);
4832 /* Line 1464 of yacc.c */
4833 #line 1366 "glsl_parser.ypp"
4836 (yyval
.node
) = new(ctx
) ast_selection_statement((yyvsp
[(3) - (5)].expression
), (yyvsp
[(5) - (5)].node
), NULL
);
4837 (yyval
.node
)->set_location(yylloc
);
4843 /* Line 1464 of yacc.c */
4844 #line 1372 "glsl_parser.ypp"
4847 (yyval
.node
) = new(ctx
) ast_selection_statement((yyvsp
[(3) - (5)].expression
), (yyvsp
[(5) - (5)].node
), NULL
);
4848 (yyval
.node
)->set_location(yylloc
);
4854 /* Line 1464 of yacc.c */
4855 #line 1378 "glsl_parser.ypp"
4858 (yyval
.node
) = new(ctx
) ast_selection_statement((yyvsp
[(3) - (7)].expression
), (yyvsp
[(5) - (7)].node
), (yyvsp
[(7) - (7)].node
));
4859 (yyval
.node
)->set_location(yylloc
);
4865 /* Line 1464 of yacc.c */
4866 #line 1387 "glsl_parser.ypp"
4868 (yyval
.node
) = (ast_node
*) (yyvsp
[(1) - (1)].expression
);
4874 /* Line 1464 of yacc.c */
4875 #line 1391 "glsl_parser.ypp"
4878 ast_declaration
*decl
= new(ctx
) ast_declaration((yyvsp
[(2) - (4)].identifier
), false, NULL
, (yyvsp
[(4) - (4)].expression
));
4879 ast_declarator_list
*declarator
= new(ctx
) ast_declarator_list((yyvsp
[(1) - (4)].fully_specified_type
));
4880 decl
->set_location(yylloc
);
4881 declarator
->set_location(yylloc
);
4883 declarator
->declarations
.push_tail(&decl
->link
);
4884 (yyval
.node
) = declarator
;
4890 /* Line 1464 of yacc.c */
4891 #line 1414 "glsl_parser.ypp"
4894 (yyval
.node
) = new(ctx
) ast_iteration_statement(ast_iteration_statement::ast_while
,
4895 NULL
, (yyvsp
[(3) - (5)].node
), NULL
, (yyvsp
[(5) - (5)].node
));
4896 (yyval
.node
)->set_location(yylloc
);
4902 /* Line 1464 of yacc.c */
4903 #line 1421 "glsl_parser.ypp"
4906 (yyval
.node
) = new(ctx
) ast_iteration_statement(ast_iteration_statement::ast_do_while
,
4907 NULL
, (yyvsp
[(5) - (7)].expression
), NULL
, (yyvsp
[(2) - (7)].node
));
4908 (yyval
.node
)->set_location(yylloc
);
4914 /* Line 1464 of yacc.c */
4915 #line 1428 "glsl_parser.ypp"
4918 (yyval
.node
) = new(ctx
) ast_iteration_statement(ast_iteration_statement::ast_for
,
4919 (yyvsp
[(3) - (6)].node
), (yyvsp
[(4) - (6)].for_rest_statement
).cond
, (yyvsp
[(4) - (6)].for_rest_statement
).rest
, (yyvsp
[(6) - (6)].node
));
4920 (yyval
.node
)->set_location(yylloc
);
4926 /* Line 1464 of yacc.c */
4927 #line 1444 "glsl_parser.ypp"
4929 (yyval
.node
) = NULL
;
4935 /* Line 1464 of yacc.c */
4936 #line 1451 "glsl_parser.ypp"
4938 (yyval
.for_rest_statement
).cond
= (yyvsp
[(1) - (2)].node
);
4939 (yyval
.for_rest_statement
).rest
= NULL
;
4945 /* Line 1464 of yacc.c */
4946 #line 1456 "glsl_parser.ypp"
4948 (yyval
.for_rest_statement
).cond
= (yyvsp
[(1) - (3)].node
);
4949 (yyval
.for_rest_statement
).rest
= (yyvsp
[(3) - (3)].expression
);
4955 /* Line 1464 of yacc.c */
4956 #line 1465 "glsl_parser.ypp"
4959 (yyval
.node
) = new(ctx
) ast_jump_statement(ast_jump_statement::ast_continue
, NULL
);
4960 (yyval
.node
)->set_location(yylloc
);
4966 /* Line 1464 of yacc.c */
4967 #line 1471 "glsl_parser.ypp"
4970 (yyval
.node
) = new(ctx
) ast_jump_statement(ast_jump_statement::ast_break
, NULL
);
4971 (yyval
.node
)->set_location(yylloc
);
4977 /* Line 1464 of yacc.c */
4978 #line 1477 "glsl_parser.ypp"
4981 (yyval
.node
) = new(ctx
) ast_jump_statement(ast_jump_statement::ast_return
, NULL
);
4982 (yyval
.node
)->set_location(yylloc
);
4988 /* Line 1464 of yacc.c */
4989 #line 1483 "glsl_parser.ypp"
4992 (yyval
.node
) = new(ctx
) ast_jump_statement(ast_jump_statement::ast_return
, (yyvsp
[(2) - (3)].expression
));
4993 (yyval
.node
)->set_location(yylloc
);
4999 /* Line 1464 of yacc.c */
5000 #line 1489 "glsl_parser.ypp"
5003 (yyval
.node
) = new(ctx
) ast_jump_statement(ast_jump_statement::ast_discard
, NULL
);
5004 (yyval
.node
)->set_location(yylloc
);
5010 /* Line 1464 of yacc.c */
5011 #line 1497 "glsl_parser.ypp"
5012 { (yyval
.node
) = (yyvsp
[(1) - (1)].function_definition
); ;}
5017 /* Line 1464 of yacc.c */
5018 #line 1498 "glsl_parser.ypp"
5019 { (yyval
.node
) = (yyvsp
[(1) - (1)].node
); ;}
5024 /* Line 1464 of yacc.c */
5025 #line 1503 "glsl_parser.ypp"
5028 (yyval
.function_definition
) = new(ctx
) ast_function_definition();
5029 (yyval
.function_definition
)->set_location(yylloc
);
5030 (yyval
.function_definition
)->prototype
= (yyvsp
[(1) - (2)].function
);
5031 (yyval
.function_definition
)->body
= (yyvsp
[(2) - (2)].compound_statement
);
5037 /* Line 1464 of yacc.c */
5038 #line 5039 "glsl_parser.cpp"
5041 YY_SYMBOL_PRINT ("-> $$ =", yyr1
[yyn
], &yyval
, &yyloc
);
5045 YY_STACK_PRINT (yyss
, yyssp
);
5050 /* Now `shift' the result of the reduction. Determine what state
5051 that goes to, based on the state we popped back to and the rule
5052 number reduced by. */
5056 yystate
= yypgoto
[yyn
- YYNTOKENS
] + *yyssp
;
5057 if (0 <= yystate
&& yystate
<= YYLAST
&& yycheck
[yystate
] == *yyssp
)
5058 yystate
= yytable
[yystate
];
5060 yystate
= yydefgoto
[yyn
- YYNTOKENS
];
5065 /*------------------------------------.
5066 | yyerrlab -- here on detecting error |
5067 `------------------------------------*/
5069 /* If not already recovering from an error, report this error. */
5073 #if ! YYERROR_VERBOSE
5074 yyerror (&yylloc
, state
, YY_("syntax error"));
5077 YYSIZE_T yysize
= yysyntax_error (0, yystate
, yychar
);
5078 if (yymsg_alloc
< yysize
&& yymsg_alloc
< YYSTACK_ALLOC_MAXIMUM
)
5080 YYSIZE_T yyalloc
= 2 * yysize
;
5081 if (! (yysize
<= yyalloc
&& yyalloc
<= YYSTACK_ALLOC_MAXIMUM
))
5082 yyalloc
= YYSTACK_ALLOC_MAXIMUM
;
5083 if (yymsg
!= yymsgbuf
)
5084 YYSTACK_FREE (yymsg
);
5085 yymsg
= (char *) YYSTACK_ALLOC (yyalloc
);
5087 yymsg_alloc
= yyalloc
;
5091 yymsg_alloc
= sizeof yymsgbuf
;
5095 if (0 < yysize
&& yysize
<= yymsg_alloc
)
5097 (void) yysyntax_error (yymsg
, yystate
, yychar
);
5098 yyerror (&yylloc
, state
, yymsg
);
5102 yyerror (&yylloc
, state
, YY_("syntax error"));
5104 goto yyexhaustedlab
;
5110 yyerror_range
[1] = yylloc
;
5112 if (yyerrstatus
== 3)
5114 /* If just tried and failed to reuse lookahead token after an
5115 error, discard it. */
5117 if (yychar
<= YYEOF
)
5119 /* Return failure if at end of input. */
5120 if (yychar
== YYEOF
)
5125 yydestruct ("Error: discarding",
5126 yytoken
, &yylval
, &yylloc
, state
);
5131 /* Else will try to reuse lookahead token after shifting the error
5136 /*---------------------------------------------------.
5137 | yyerrorlab -- error raised explicitly by YYERROR. |
5138 `---------------------------------------------------*/
5141 /* Pacify compilers like GCC when the user code never invokes
5142 YYERROR and the label yyerrorlab therefore never appears in user
5144 if (/*CONSTCOND*/ 0)
5147 yyerror_range
[1] = yylsp
[1-yylen
];
5148 /* Do not reclaim the symbols of the rule which action triggered
5152 YY_STACK_PRINT (yyss
, yyssp
);
5157 /*-------------------------------------------------------------.
5158 | yyerrlab1 -- common code for both syntax error and YYERROR. |
5159 `-------------------------------------------------------------*/
5161 yyerrstatus
= 3; /* Each real token shifted decrements this. */
5165 yyn
= yypact
[yystate
];
5166 if (yyn
!= YYPACT_NINF
)
5169 if (0 <= yyn
&& yyn
<= YYLAST
&& yycheck
[yyn
] == YYTERROR
)
5177 /* Pop the current state because it cannot handle the error token. */
5181 yyerror_range
[1] = *yylsp
;
5182 yydestruct ("Error: popping",
5183 yystos
[yystate
], yyvsp
, yylsp
, state
);
5186 YY_STACK_PRINT (yyss
, yyssp
);
5191 yyerror_range
[2] = yylloc
;
5192 /* Using YYLLOC is tempting, but would change the location of
5193 the lookahead. YYLOC is available though. */
5194 YYLLOC_DEFAULT (yyloc
, yyerror_range
, 2);
5197 /* Shift the error token. */
5198 YY_SYMBOL_PRINT ("Shifting", yystos
[yyn
], yyvsp
, yylsp
);
5204 /*-------------------------------------.
5205 | yyacceptlab -- YYACCEPT comes here. |
5206 `-------------------------------------*/
5211 /*-----------------------------------.
5212 | yyabortlab -- YYABORT comes here. |
5213 `-----------------------------------*/
5218 #if !defined(yyoverflow) || YYERROR_VERBOSE
5219 /*-------------------------------------------------.
5220 | yyexhaustedlab -- memory exhaustion comes here. |
5221 `-------------------------------------------------*/
5223 yyerror (&yylloc
, state
, YY_("memory exhausted"));
5229 if (yychar
!= YYEMPTY
)
5230 yydestruct ("Cleanup: discarding lookahead",
5231 yytoken
, &yylval
, &yylloc
, state
);
5232 /* Do not reclaim the symbols of the rule which action triggered
5233 this YYABORT or YYACCEPT. */
5235 YY_STACK_PRINT (yyss
, yyssp
);
5236 while (yyssp
!= yyss
)
5238 yydestruct ("Cleanup: popping",
5239 yystos
[*yyssp
], yyvsp
, yylsp
, state
);
5244 YYSTACK_FREE (yyss
);
5247 if (yymsg
!= yymsgbuf
)
5248 YYSTACK_FREE (yymsg
);
5250 /* Make sure YYID is used. */
5251 return YYID (yyresult
);