diff options
Diffstat (limited to 'src/cmd/gc/y.tab.c')
-rw-r--r-- | src/cmd/gc/y.tab.c | 3771 |
1 files changed, 2214 insertions, 1557 deletions
diff --git a/src/cmd/gc/y.tab.c b/src/cmd/gc/y.tab.c index 21c67e805..390ad80b3 100644 --- a/src/cmd/gc/y.tab.c +++ b/src/cmd/gc/y.tab.c @@ -1,24 +1,21 @@ -/* A Bison parser, made by GNU Bison 2.3. */ +/* A Bison parser, made by GNU Bison 2.5. */ -/* Skeleton implementation for Bison's Yacc-like parsers in C - - Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 - Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify +/* Bison implementation for Yacc-like parsers in C + + Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc. + + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. */ + along with this program. If not, see <http://www.gnu.org/licenses/>. */ /* As a special exception, you may create a larger work that contains part or all of the Bison parser skeleton and distribute that work @@ -29,7 +26,7 @@ special exception, which will cause the skeleton and the resulting Bison output files to be licensed under the GNU General Public License without this special exception. - + This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ @@ -47,7 +44,7 @@ #define YYBISON 1 /* Bison version. */ -#define YYBISON_VERSION "2.3" +#define YYBISON_VERSION "2.5" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" @@ -55,11 +52,52 @@ /* Pure parsers. */ #define YYPURE 0 +/* Push parsers. */ +#define YYPUSH 0 + +/* Pull parsers. */ +#define YYPULL 1 + /* Using locations. */ #define YYLSP_NEEDED 0 +/* Copy the first part of user declarations. */ + +/* Line 268 of yacc.c */ +#line 20 "go.y" + +#include <u.h> +#include <stdio.h> /* if we don't, bison will, and go.h re-#defines getc */ +#include <libc.h> +#include "go.h" + +static void fixlbrace(int); + + +/* Line 268 of yacc.c */ +#line 81 "y.tab.c" + +/* Enabling traces. */ +#ifndef YYDEBUG +# define YYDEBUG 0 +#endif + +/* Enabling verbose error messages. */ +#ifdef YYERROR_VERBOSE +# undef YYERROR_VERBOSE +# define YYERROR_VERBOSE 1 +#else +# define YYERROR_VERBOSE 1 +#endif + +/* Enabling the token table. */ +#ifndef YYTOKEN_TABLE +# define YYTOKEN_TABLE 0 +#endif + + /* Tokens. */ #ifndef YYTOKENTYPE # define YYTOKENTYPE @@ -171,61 +209,36 @@ -/* Copy the first part of user declarations. */ -#line 20 "go.y" - -#include <u.h> -#include <stdio.h> /* if we don't, bison will, and go.h re-#defines getc */ -#include <libc.h> -#include "go.h" - -static void fixlbrace(int); - - -/* Enabling traces. */ -#ifndef YYDEBUG -# define YYDEBUG 0 -#endif - -/* Enabling verbose error messages. */ -#ifdef YYERROR_VERBOSE -# undef YYERROR_VERBOSE -# define YYERROR_VERBOSE 1 -#else -# define YYERROR_VERBOSE 1 -#endif - -/* Enabling the token table. */ -#ifndef YYTOKEN_TABLE -# define YYTOKEN_TABLE 0 -#endif - #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED typedef union YYSTYPE -#line 28 "go.y" { + +/* Line 293 of yacc.c */ +#line 28 "go.y" + Node* node; NodeList* list; Type* type; Sym* sym; struct Val val; int i; -} -/* Line 193 of yacc.c. */ -#line 216 "y.tab.c" - YYSTYPE; + + + +/* Line 293 of yacc.c */ +#line 230 "y.tab.c" +} YYSTYPE; +# define YYSTYPE_IS_TRIVIAL 1 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 -# define YYSTYPE_IS_TRIVIAL 1 #endif - /* Copy the second part of user declarations. */ -/* Line 216 of yacc.c. */ -#line 229 "y.tab.c" +/* Line 343 of yacc.c */ +#line 242 "y.tab.c" #ifdef short # undef short @@ -300,14 +313,14 @@ typedef short int yytype_int16; #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) static int -YYID (int i) +YYID (int yyi) #else static int -YYID (i) - int i; +YYID (yyi) + int yyi; #endif { - return i; + return yyi; } #endif @@ -328,11 +341,11 @@ YYID (i) # define alloca _alloca # else # define YYSTACK_ALLOC alloca -# if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ +# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ -# ifndef _STDLIB_H -# define _STDLIB_H 1 +# ifndef EXIT_SUCCESS +# define EXIT_SUCCESS 0 # endif # endif # endif @@ -355,24 +368,24 @@ YYID (i) # ifndef YYSTACK_ALLOC_MAXIMUM # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM # endif -# if (defined __cplusplus && ! defined _STDLIB_H \ +# if (defined __cplusplus && ! defined EXIT_SUCCESS \ && ! ((defined YYMALLOC || defined malloc) \ && (defined YYFREE || defined free))) # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ -# ifndef _STDLIB_H -# define _STDLIB_H 1 +# ifndef EXIT_SUCCESS +# define EXIT_SUCCESS 0 # endif # endif # ifndef YYMALLOC # define YYMALLOC malloc -# if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ +# if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ # endif # endif # ifndef YYFREE # define YYFREE free -# if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ +# if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) void free (void *); /* INFRINGES ON USER NAME SPACE */ # endif @@ -388,9 +401,9 @@ void free (void *); /* INFRINGES ON USER NAME SPACE */ /* A type that is properly aligned for any stack member. */ union yyalloc { - yytype_int16 yyss; - YYSTYPE yyvs; - }; + yytype_int16 yyss_alloc; + YYSTYPE yyvs_alloc; +}; /* The size of the maximum gap between one aligned stack and the next. */ # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) @@ -401,6 +414,27 @@ union yyalloc ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \ + YYSTACK_GAP_MAXIMUM) +# define YYCOPY_NEEDED 1 + +/* Relocate STACK from its old location to the new one. The + local variables YYSIZE and YYSTACKSIZE give the old and new number of + elements in the stack, and YYPTR gives the new location of the + stack. Advance YYPTR to a properly aligned location for the next + stack. */ +# define YYSTACK_RELOCATE(Stack_alloc, Stack) \ + do \ + { \ + YYSIZE_T yynewbytes; \ + YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ + Stack = &yyptr->Stack_alloc; \ + yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ + yyptr += yynewbytes / sizeof (*yyptr); \ + } \ + while (YYID (0)) + +#endif + +#if defined YYCOPY_NEEDED && YYCOPY_NEEDED /* Copy COUNT objects from FROM to TO. The source and destination do not overlap. */ # ifndef YYCOPY @@ -418,38 +452,21 @@ union yyalloc while (YYID (0)) # endif # endif - -/* Relocate STACK from its old location to the new one. The - local variables YYSIZE and YYSTACKSIZE give the old and new number of - elements in the stack, and YYPTR gives the new location of the - stack. Advance YYPTR to a properly aligned location for the next - stack. */ -# define YYSTACK_RELOCATE(Stack) \ - do \ - { \ - YYSIZE_T yynewbytes; \ - YYCOPY (&yyptr->Stack, Stack, yysize); \ - Stack = &yyptr->Stack; \ - yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ - yyptr += yynewbytes / sizeof (*yyptr); \ - } \ - while (YYID (0)) - -#endif +#endif /* !YYCOPY_NEEDED */ /* YYFINAL -- State number of the termination state. */ #define YYFINAL 4 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 2194 +#define YYLAST 2270 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 76 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 142 /* YYNRULES -- Number of rules. */ -#define YYNRULES 349 +#define YYNRULES 351 /* YYNRULES -- Number of states. */ -#define YYNSTATES 663 +#define YYNSTATES 667 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 @@ -512,28 +529,29 @@ static const yytype_uint16 yyprhs[] = 326, 330, 334, 338, 342, 346, 350, 354, 358, 362, 366, 370, 374, 378, 382, 384, 387, 390, 393, 396, 399, 402, 405, 408, 412, 418, 425, 427, 429, 433, - 439, 445, 450, 457, 459, 465, 471, 477, 485, 487, - 488, 492, 494, 499, 501, 506, 508, 512, 514, 516, - 518, 520, 522, 524, 526, 527, 529, 531, 533, 535, - 540, 542, 544, 546, 549, 551, 553, 555, 557, 559, - 563, 565, 567, 569, 572, 574, 576, 578, 580, 584, - 586, 588, 590, 592, 594, 596, 598, 600, 602, 606, - 611, 616, 619, 623, 629, 631, 633, 636, 640, 646, - 650, 656, 660, 664, 670, 679, 685, 694, 700, 701, - 705, 706, 708, 712, 714, 719, 722, 723, 727, 729, - 733, 735, 739, 741, 745, 747, 751, 753, 757, 761, - 764, 769, 773, 779, 785, 787, 791, 793, 796, 798, - 802, 807, 809, 812, 815, 817, 819, 823, 824, 827, - 828, 830, 832, 834, 836, 838, 840, 842, 844, 846, - 847, 852, 854, 857, 860, 863, 866, 869, 872, 874, - 878, 880, 884, 886, 890, 892, 896, 898, 902, 904, - 906, 910, 914, 915, 918, 919, 921, 922, 924, 925, - 927, 928, 930, 931, 933, 934, 936, 937, 939, 940, - 942, 943, 945, 950, 955, 961, 968, 973, 978, 980, - 982, 984, 986, 988, 990, 992, 994, 996, 1000, 1005, - 1011, 1016, 1021, 1024, 1027, 1032, 1036, 1040, 1046, 1050, - 1055, 1059, 1065, 1067, 1068, 1070, 1074, 1076, 1078, 1081, - 1083, 1085, 1091, 1092, 1095, 1097, 1101, 1103, 1107, 1109 + 439, 445, 450, 457, 466, 468, 474, 480, 486, 494, + 496, 497, 501, 503, 508, 510, 515, 517, 521, 523, + 525, 527, 529, 531, 533, 535, 536, 538, 540, 542, + 544, 549, 554, 556, 558, 560, 563, 565, 567, 569, + 571, 573, 577, 579, 581, 583, 586, 588, 590, 592, + 594, 598, 600, 602, 604, 606, 608, 610, 612, 614, + 616, 620, 625, 630, 633, 637, 643, 645, 647, 650, + 654, 660, 664, 670, 674, 678, 684, 693, 699, 708, + 714, 715, 719, 720, 722, 726, 728, 733, 736, 737, + 741, 743, 747, 749, 753, 755, 759, 761, 765, 767, + 771, 775, 778, 783, 787, 793, 799, 801, 805, 807, + 810, 812, 816, 821, 823, 826, 829, 831, 833, 837, + 838, 841, 842, 844, 846, 848, 850, 852, 854, 856, + 858, 860, 861, 866, 868, 871, 874, 877, 880, 883, + 886, 888, 892, 894, 898, 900, 904, 906, 910, 912, + 916, 918, 920, 924, 928, 929, 932, 933, 935, 936, + 938, 939, 941, 942, 944, 945, 947, 948, 950, 951, + 953, 954, 956, 957, 959, 964, 969, 975, 982, 987, + 992, 994, 996, 998, 1000, 1002, 1004, 1006, 1008, 1010, + 1014, 1019, 1025, 1030, 1035, 1038, 1041, 1046, 1050, 1054, + 1060, 1064, 1069, 1073, 1079, 1081, 1082, 1084, 1088, 1090, + 1092, 1095, 1097, 1099, 1105, 1106, 1109, 1111, 1115, 1117, + 1121, 1123 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ @@ -584,113 +602,115 @@ static const yytype_int16 yyrhs[] = 187, 11, 191, 60, -1, 3, -1, 143, -1, 134, 63, 141, -1, 134, 63, 59, 135, 60, -1, 134, 63, 59, 31, 60, -1, 134, 71, 126, 72, -1, - 134, 71, 192, 66, 192, 72, -1, 128, -1, 149, - 59, 126, 191, 60, -1, 150, 137, 130, 189, 68, - -1, 129, 67, 130, 189, 68, -1, 59, 135, 60, - 67, 130, 189, 68, -1, 165, -1, -1, 126, 66, - 133, -1, 126, -1, 67, 130, 189, 68, -1, 126, - -1, 67, 130, 189, 68, -1, 129, -1, 59, 135, - 60, -1, 126, -1, 147, -1, 146, -1, 35, -1, - 67, -1, 141, -1, 141, -1, -1, 138, -1, 24, - -1, 142, -1, 73, -1, 74, 3, 63, 24, -1, - 141, -1, 138, -1, 11, -1, 11, 146, -1, 155, - -1, 161, -1, 153, -1, 154, -1, 152, -1, 59, - 146, 60, -1, 155, -1, 161, -1, 153, -1, 53, - 147, -1, 161, -1, 153, -1, 154, -1, 152, -1, - 59, 146, 60, -1, 161, -1, 153, -1, 153, -1, - 155, -1, 161, -1, 153, -1, 154, -1, 152, -1, - 143, -1, 143, 63, 141, -1, 71, 192, 72, 146, - -1, 71, 11, 72, 146, -1, 8, 148, -1, 8, - 36, 146, -1, 23, 71, 146, 72, 146, -1, 156, - -1, 157, -1, 53, 146, -1, 36, 8, 146, -1, - 29, 137, 170, 190, 68, -1, 29, 137, 68, -1, - 22, 137, 171, 190, 68, -1, 22, 137, 68, -1, - 17, 159, 162, -1, 141, 59, 179, 60, 163, -1, - 59, 179, 60, 141, 59, 179, 60, 163, -1, 200, - 59, 195, 60, 210, -1, 59, 215, 60, 141, 59, - 195, 60, 210, -1, 17, 59, 179, 60, 163, -1, - -1, 67, 183, 68, -1, -1, 151, -1, 59, 179, - 60, -1, 161, -1, 164, 137, 183, 68, -1, 164, - 1, -1, -1, 166, 90, 62, -1, 93, -1, 167, - 62, 93, -1, 95, -1, 168, 62, 95, -1, 97, - -1, 169, 62, 97, -1, 172, -1, 170, 62, 172, - -1, 175, -1, 171, 62, 175, -1, 184, 146, 198, - -1, 174, 198, -1, 59, 174, 60, 198, -1, 53, - 174, 198, -1, 59, 53, 174, 60, 198, -1, 53, - 59, 174, 60, 198, -1, 24, -1, 24, 63, 141, - -1, 173, -1, 138, 176, -1, 173, -1, 59, 173, - 60, -1, 59, 179, 60, 163, -1, 136, -1, 141, - 136, -1, 141, 145, -1, 145, -1, 177, -1, 178, - 75, 177, -1, -1, 178, 191, -1, -1, 100, -1, - 91, -1, 181, -1, 1, -1, 98, -1, 110, -1, - 121, -1, 124, -1, 113, -1, -1, 144, 66, 182, - 180, -1, 15, -1, 6, 140, -1, 10, 140, -1, - 18, 128, -1, 13, 128, -1, 19, 138, -1, 27, - 193, -1, 180, -1, 183, 62, 180, -1, 138, -1, - 184, 75, 138, -1, 139, -1, 185, 75, 139, -1, - 126, -1, 186, 75, 126, -1, 135, -1, 187, 75, - 135, -1, 131, -1, 132, -1, 188, 75, 131, -1, - 188, 75, 132, -1, -1, 188, 191, -1, -1, 62, - -1, -1, 75, -1, -1, 126, -1, -1, 186, -1, - -1, 98, -1, -1, 215, -1, -1, 216, -1, -1, - 217, -1, -1, 3, -1, 21, 24, 3, 62, -1, - 32, 200, 202, 62, -1, 9, 200, 65, 213, 62, - -1, 9, 200, 202, 65, 213, 62, -1, 31, 201, - 202, 62, -1, 17, 160, 162, 62, -1, 142, -1, - 200, -1, 204, -1, 205, -1, 206, -1, 204, -1, - 206, -1, 142, -1, 24, -1, 71, 72, 202, -1, - 71, 3, 72, 202, -1, 23, 71, 202, 72, 202, - -1, 29, 67, 196, 68, -1, 22, 67, 197, 68, - -1, 53, 202, -1, 8, 203, -1, 8, 59, 205, - 60, -1, 8, 36, 202, -1, 36, 8, 202, -1, - 17, 59, 195, 60, 210, -1, 141, 202, 198, -1, - 141, 11, 202, 198, -1, 141, 202, 198, -1, 141, - 59, 195, 60, 210, -1, 202, -1, -1, 211, -1, - 59, 195, 60, -1, 202, -1, 3, -1, 50, 3, - -1, 141, -1, 212, -1, 59, 212, 49, 212, 60, - -1, -1, 214, 199, -1, 207, -1, 215, 75, 207, - -1, 208, -1, 216, 62, 208, -1, 209, -1, 217, - 62, 209, -1 + 134, 71, 192, 66, 192, 72, -1, 134, 71, 192, + 66, 192, 66, 192, 72, -1, 128, -1, 149, 59, + 126, 191, 60, -1, 150, 137, 130, 189, 68, -1, + 129, 67, 130, 189, 68, -1, 59, 135, 60, 67, + 130, 189, 68, -1, 165, -1, -1, 126, 66, 133, + -1, 126, -1, 67, 130, 189, 68, -1, 126, -1, + 67, 130, 189, 68, -1, 129, -1, 59, 135, 60, + -1, 126, -1, 147, -1, 146, -1, 35, -1, 67, + -1, 141, -1, 141, -1, -1, 138, -1, 24, -1, + 142, -1, 73, -1, 74, 3, 63, 24, -1, 74, + 3, 63, 73, -1, 141, -1, 138, -1, 11, -1, + 11, 146, -1, 155, -1, 161, -1, 153, -1, 154, + -1, 152, -1, 59, 146, 60, -1, 155, -1, 161, + -1, 153, -1, 53, 147, -1, 161, -1, 153, -1, + 154, -1, 152, -1, 59, 146, 60, -1, 161, -1, + 153, -1, 153, -1, 155, -1, 161, -1, 153, -1, + 154, -1, 152, -1, 143, -1, 143, 63, 141, -1, + 71, 192, 72, 146, -1, 71, 11, 72, 146, -1, + 8, 148, -1, 8, 36, 146, -1, 23, 71, 146, + 72, 146, -1, 156, -1, 157, -1, 53, 146, -1, + 36, 8, 146, -1, 29, 137, 170, 190, 68, -1, + 29, 137, 68, -1, 22, 137, 171, 190, 68, -1, + 22, 137, 68, -1, 17, 159, 162, -1, 141, 59, + 179, 60, 163, -1, 59, 179, 60, 141, 59, 179, + 60, 163, -1, 200, 59, 195, 60, 210, -1, 59, + 215, 60, 141, 59, 195, 60, 210, -1, 17, 59, + 179, 60, 163, -1, -1, 67, 183, 68, -1, -1, + 151, -1, 59, 179, 60, -1, 161, -1, 164, 137, + 183, 68, -1, 164, 1, -1, -1, 166, 90, 62, + -1, 93, -1, 167, 62, 93, -1, 95, -1, 168, + 62, 95, -1, 97, -1, 169, 62, 97, -1, 172, + -1, 170, 62, 172, -1, 175, -1, 171, 62, 175, + -1, 184, 146, 198, -1, 174, 198, -1, 59, 174, + 60, 198, -1, 53, 174, 198, -1, 59, 53, 174, + 60, 198, -1, 53, 59, 174, 60, 198, -1, 24, + -1, 24, 63, 141, -1, 173, -1, 138, 176, -1, + 173, -1, 59, 173, 60, -1, 59, 179, 60, 163, + -1, 136, -1, 141, 136, -1, 141, 145, -1, 145, + -1, 177, -1, 178, 75, 177, -1, -1, 178, 191, + -1, -1, 100, -1, 91, -1, 181, -1, 1, -1, + 98, -1, 110, -1, 121, -1, 124, -1, 113, -1, + -1, 144, 66, 182, 180, -1, 15, -1, 6, 140, + -1, 10, 140, -1, 18, 128, -1, 13, 128, -1, + 19, 138, -1, 27, 193, -1, 180, -1, 183, 62, + 180, -1, 138, -1, 184, 75, 138, -1, 139, -1, + 185, 75, 139, -1, 126, -1, 186, 75, 126, -1, + 135, -1, 187, 75, 135, -1, 131, -1, 132, -1, + 188, 75, 131, -1, 188, 75, 132, -1, -1, 188, + 191, -1, -1, 62, -1, -1, 75, -1, -1, 126, + -1, -1, 186, -1, -1, 98, -1, -1, 215, -1, + -1, 216, -1, -1, 217, -1, -1, 3, -1, 21, + 24, 3, 62, -1, 32, 200, 202, 62, -1, 9, + 200, 65, 213, 62, -1, 9, 200, 202, 65, 213, + 62, -1, 31, 201, 202, 62, -1, 17, 160, 162, + 62, -1, 142, -1, 200, -1, 204, -1, 205, -1, + 206, -1, 204, -1, 206, -1, 142, -1, 24, -1, + 71, 72, 202, -1, 71, 3, 72, 202, -1, 23, + 71, 202, 72, 202, -1, 29, 67, 196, 68, -1, + 22, 67, 197, 68, -1, 53, 202, -1, 8, 203, + -1, 8, 59, 205, 60, -1, 8, 36, 202, -1, + 36, 8, 202, -1, 17, 59, 195, 60, 210, -1, + 141, 202, 198, -1, 141, 11, 202, 198, -1, 141, + 202, 198, -1, 141, 59, 195, 60, 210, -1, 202, + -1, -1, 211, -1, 59, 195, 60, -1, 202, -1, + 3, -1, 50, 3, -1, 141, -1, 212, -1, 59, + 212, 49, 212, 60, -1, -1, 214, 199, -1, 207, + -1, 215, 75, 207, -1, 208, -1, 216, 62, 208, + -1, 209, -1, 217, 62, 209, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 124, 124, 133, 140, 151, 151, 166, 167, 170, - 171, 172, 175, 208, 219, 220, 223, 230, 237, 246, - 260, 261, 268, 268, 281, 285, 286, 290, 295, 301, - 305, 309, 313, 319, 325, 331, 336, 340, 344, 350, - 356, 360, 364, 370, 374, 380, 381, 385, 391, 400, - 406, 424, 429, 441, 457, 462, 469, 489, 507, 516, - 535, 534, 549, 548, 579, 582, 589, 588, 599, 605, - 614, 625, 631, 634, 642, 641, 652, 658, 670, 674, - 679, 669, 700, 699, 712, 715, 721, 724, 736, 740, - 735, 758, 757, 773, 774, 778, 782, 786, 790, 794, - 798, 802, 806, 810, 814, 818, 822, 826, 830, 834, - 838, 842, 846, 851, 857, 858, 862, 873, 877, 881, - 885, 890, 894, 904, 908, 913, 921, 925, 926, 937, - 941, 945, 949, 953, 954, 960, 967, 973, 980, 983, - 990, 996, 1013, 1020, 1021, 1028, 1029, 1048, 1049, 1052, - 1055, 1059, 1070, 1079, 1085, 1088, 1091, 1098, 1099, 1105, - 1120, 1128, 1140, 1145, 1151, 1152, 1153, 1154, 1155, 1156, - 1162, 1163, 1164, 1165, 1171, 1172, 1173, 1174, 1175, 1181, - 1182, 1185, 1188, 1189, 1190, 1191, 1192, 1195, 1196, 1209, - 1213, 1218, 1223, 1228, 1232, 1233, 1236, 1242, 1249, 1255, - 1262, 1268, 1279, 1293, 1322, 1362, 1387, 1405, 1414, 1417, - 1425, 1429, 1433, 1440, 1446, 1451, 1463, 1466, 1476, 1477, - 1483, 1484, 1490, 1494, 1500, 1501, 1507, 1511, 1517, 1540, - 1545, 1551, 1557, 1564, 1573, 1582, 1597, 1603, 1608, 1612, - 1619, 1632, 1633, 1639, 1645, 1648, 1652, 1658, 1661, 1670, - 1673, 1674, 1678, 1679, 1685, 1686, 1687, 1688, 1689, 1691, - 1690, 1705, 1710, 1714, 1718, 1722, 1726, 1731, 1750, 1756, - 1764, 1768, 1774, 1778, 1784, 1788, 1794, 1798, 1807, 1811, - 1815, 1819, 1825, 1828, 1836, 1837, 1839, 1840, 1843, 1846, - 1849, 1852, 1855, 1858, 1861, 1864, 1867, 1870, 1873, 1876, - 1879, 1882, 1888, 1892, 1896, 1900, 1904, 1908, 1928, 1935, - 1946, 1947, 1948, 1951, 1952, 1955, 1959, 1969, 1973, 1977, - 1981, 1985, 1989, 1993, 1999, 2005, 2013, 2021, 2027, 2034, - 2050, 2068, 2072, 2078, 2081, 2084, 2088, 2098, 2102, 2117, - 2125, 2126, 2138, 2139, 2142, 2146, 2152, 2156, 2162, 2166 + 0, 124, 124, 133, 139, 150, 150, 165, 166, 169, + 170, 171, 174, 211, 222, 223, 226, 233, 240, 249, + 263, 264, 271, 271, 284, 288, 289, 293, 298, 304, + 308, 312, 316, 322, 328, 334, 339, 343, 347, 353, + 359, 363, 367, 373, 377, 383, 384, 388, 394, 403, + 409, 427, 432, 444, 460, 465, 472, 492, 510, 519, + 538, 537, 552, 551, 582, 585, 592, 591, 602, 608, + 617, 628, 634, 637, 645, 644, 655, 661, 673, 677, + 682, 672, 703, 702, 715, 718, 724, 727, 739, 743, + 738, 761, 760, 776, 777, 781, 785, 789, 793, 797, + 801, 805, 809, 813, 817, 821, 825, 829, 833, 837, + 841, 845, 849, 854, 860, 861, 865, 876, 880, 884, + 888, 893, 897, 907, 911, 916, 924, 928, 929, 940, + 944, 948, 952, 956, 964, 965, 971, 978, 984, 991, + 994, 1001, 1007, 1024, 1031, 1032, 1039, 1040, 1059, 1060, + 1063, 1066, 1070, 1081, 1090, 1096, 1099, 1102, 1109, 1110, + 1116, 1129, 1144, 1152, 1164, 1169, 1175, 1176, 1177, 1178, + 1179, 1180, 1186, 1187, 1188, 1189, 1195, 1196, 1197, 1198, + 1199, 1205, 1206, 1209, 1212, 1213, 1214, 1215, 1216, 1219, + 1220, 1233, 1237, 1242, 1247, 1252, 1256, 1257, 1260, 1266, + 1273, 1279, 1286, 1292, 1303, 1317, 1346, 1386, 1411, 1429, + 1438, 1441, 1449, 1453, 1457, 1464, 1470, 1475, 1487, 1490, + 1500, 1501, 1507, 1508, 1514, 1518, 1524, 1525, 1531, 1535, + 1541, 1564, 1569, 1575, 1581, 1588, 1597, 1606, 1621, 1627, + 1632, 1636, 1643, 1656, 1657, 1663, 1669, 1672, 1676, 1682, + 1685, 1694, 1697, 1698, 1702, 1703, 1709, 1710, 1711, 1712, + 1713, 1715, 1714, 1729, 1734, 1738, 1742, 1746, 1750, 1755, + 1774, 1780, 1788, 1792, 1798, 1802, 1808, 1812, 1818, 1822, + 1831, 1835, 1839, 1843, 1849, 1852, 1860, 1861, 1863, 1864, + 1867, 1870, 1873, 1876, 1879, 1882, 1885, 1888, 1891, 1894, + 1897, 1900, 1903, 1906, 1912, 1916, 1920, 1924, 1928, 1932, + 1952, 1959, 1970, 1971, 1972, 1975, 1976, 1979, 1983, 1993, + 1997, 2001, 2005, 2009, 2013, 2017, 2023, 2029, 2037, 2045, + 2051, 2058, 2074, 2096, 2100, 2106, 2109, 2112, 2116, 2126, + 2130, 2145, 2153, 2154, 2166, 2167, 2170, 2174, 2180, 2184, + 2190, 2194 }; #endif @@ -709,16 +729,16 @@ const char *yytname[] = "'/'", "'%'", "'&'", "NotPackage", "NotParen", "'('", "')'", "PreferToRightParen", "';'", "'.'", "'$'", "'='", "':'", "'{'", "'}'", "'!'", "'~'", "'['", "']'", "'?'", "'@'", "','", "$accept", "file", - "package", "loadsys", "@1", "imports", "import", "import_stmt", + "package", "loadsys", "$@1", "imports", "import", "import_stmt", "import_stmt_list", "import_here", "import_package", "import_safety", - "import_there", "@2", "xdcl", "common_dcl", "lconst", "vardcl", + "import_there", "$@2", "xdcl", "common_dcl", "lconst", "vardcl", "constdcl", "constdcl1", "typedclname", "typedcl", "simple_stmt", "case", - "compound_stmt", "@3", "caseblock", "@4", "caseblock_list", "loop_body", - "@5", "range_stmt", "for_header", "for_body", "for_stmt", "@6", - "if_header", "if_stmt", "@7", "@8", "@9", "elseif", "@10", "elseif_list", - "else", "switch_stmt", "@11", "@12", "select_stmt", "@13", "expr", - "uexpr", "pseudocall", "pexpr_no_paren", "start_complit", "keyval", - "bare_complitexpr", "complitexpr", "pexpr", "expr_or_type", + "compound_stmt", "$@3", "caseblock", "$@4", "caseblock_list", + "loop_body", "$@5", "range_stmt", "for_header", "for_body", "for_stmt", + "$@6", "if_header", "if_stmt", "$@7", "$@8", "$@9", "elseif", "$@10", + "elseif_list", "else", "switch_stmt", "$@11", "$@12", "select_stmt", + "$@13", "expr", "uexpr", "pseudocall", "pexpr_no_paren", "start_complit", + "keyval", "bare_complitexpr", "complitexpr", "pexpr", "expr_or_type", "name_or_type", "lbrace", "new_name", "dcl_name", "onew_name", "sym", "hidden_importsym", "name", "labelname", "dotdotdot", "ntype", "non_expr_type", "non_recvchantype", "convtype", "comptype", @@ -728,7 +748,7 @@ const char *yytname[] = "vardcl_list", "constdcl_list", "typedcl_list", "structdcl_list", "interfacedcl_list", "structdcl", "packname", "embed", "interfacedcl", "indcl", "arg_type", "arg_type_list", "oarg_type_list_ocomma", "stmt", - "non_dcl_stmt", "@14", "stmt_list", "new_name_list", "dcl_name_list", + "non_dcl_stmt", "$@14", "stmt_list", "new_name_list", "dcl_name_list", "expr_list", "expr_or_type_list", "keyval_list", "braced_keyval_list", "osemi", "ocomma", "oexpr", "oexpr_list", "osimple_stmt", "ohidden_funarg_list", "ohidden_structdcl_list", @@ -775,28 +795,29 @@ static const yytype_uint8 yyr1[] = 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 129, 129, 129, 129, - 129, 129, 129, 129, 129, 129, 129, 129, 129, 130, - 131, 132, 132, 133, 133, 134, 134, 135, 135, 136, - 137, 137, 138, 139, 140, 140, 141, 141, 141, 142, - 143, 144, 145, 145, 146, 146, 146, 146, 146, 146, - 147, 147, 147, 147, 148, 148, 148, 148, 148, 149, - 149, 150, 151, 151, 151, 151, 151, 152, 152, 153, - 153, 153, 153, 153, 153, 153, 154, 155, 156, 156, - 157, 157, 158, 159, 159, 160, 160, 161, 162, 162, - 163, 163, 163, 164, 165, 165, 166, 166, 167, 167, - 168, 168, 169, 169, 170, 170, 171, 171, 172, 172, - 172, 172, 172, 172, 173, 173, 174, 175, 175, 175, - 176, 177, 177, 177, 177, 178, 178, 179, 179, 180, - 180, 180, 180, 180, 181, 181, 181, 181, 181, 182, - 181, 181, 181, 181, 181, 181, 181, 181, 183, 183, - 184, 184, 185, 185, 186, 186, 187, 187, 188, 188, - 188, 188, 189, 189, 190, 190, 191, 191, 192, 192, - 193, 193, 194, 194, 195, 195, 196, 196, 197, 197, - 198, 198, 199, 199, 199, 199, 199, 199, 200, 201, - 202, 202, 202, 203, 203, 204, 204, 204, 204, 204, - 204, 204, 204, 204, 204, 204, 205, 206, 207, 207, - 208, 209, 209, 210, 210, 211, 211, 212, 212, 212, - 213, 213, 214, 214, 215, 215, 216, 216, 217, 217 + 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, + 130, 131, 132, 132, 133, 133, 134, 134, 135, 135, + 136, 137, 137, 138, 139, 140, 140, 141, 141, 141, + 142, 142, 143, 144, 145, 145, 146, 146, 146, 146, + 146, 146, 147, 147, 147, 147, 148, 148, 148, 148, + 148, 149, 149, 150, 151, 151, 151, 151, 151, 152, + 152, 153, 153, 153, 153, 153, 153, 153, 154, 155, + 156, 156, 157, 157, 158, 159, 159, 160, 160, 161, + 162, 162, 163, 163, 163, 164, 165, 165, 166, 166, + 167, 167, 168, 168, 169, 169, 170, 170, 171, 171, + 172, 172, 172, 172, 172, 172, 173, 173, 174, 175, + 175, 175, 176, 177, 177, 177, 177, 178, 178, 179, + 179, 180, 180, 180, 180, 180, 181, 181, 181, 181, + 181, 182, 181, 181, 181, 181, 181, 181, 181, 181, + 183, 183, 184, 184, 185, 185, 186, 186, 187, 187, + 188, 188, 188, 188, 189, 189, 190, 190, 191, 191, + 192, 192, 193, 193, 194, 194, 195, 195, 196, 196, + 197, 197, 198, 198, 199, 199, 199, 199, 199, 199, + 200, 201, 202, 202, 202, 203, 203, 204, 204, 204, + 204, 204, 204, 204, 204, 204, 204, 204, 205, 206, + 207, 207, 208, 209, 209, 210, 210, 211, 211, 212, + 212, 212, 213, 213, 214, 214, 215, 215, 216, 216, + 217, 217 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -815,669 +836,691 @@ static const yytype_uint8 yyr2[] = 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 3, 5, 6, 1, 1, 3, 5, - 5, 4, 6, 1, 5, 5, 5, 7, 1, 0, - 3, 1, 4, 1, 4, 1, 3, 1, 1, 1, - 1, 1, 1, 1, 0, 1, 1, 1, 1, 4, - 1, 1, 1, 2, 1, 1, 1, 1, 1, 3, - 1, 1, 1, 2, 1, 1, 1, 1, 3, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 3, 4, - 4, 2, 3, 5, 1, 1, 2, 3, 5, 3, - 5, 3, 3, 5, 8, 5, 8, 5, 0, 3, - 0, 1, 3, 1, 4, 2, 0, 3, 1, 3, - 1, 3, 1, 3, 1, 3, 1, 3, 3, 2, - 4, 3, 5, 5, 1, 3, 1, 2, 1, 3, - 4, 1, 2, 2, 1, 1, 3, 0, 2, 0, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, - 4, 1, 2, 2, 2, 2, 2, 2, 1, 3, - 1, 3, 1, 3, 1, 3, 1, 3, 1, 1, - 3, 3, 0, 2, 0, 1, 0, 1, 0, 1, + 5, 4, 6, 8, 1, 5, 5, 5, 7, 1, + 0, 3, 1, 4, 1, 4, 1, 3, 1, 1, + 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, + 4, 4, 1, 1, 1, 2, 1, 1, 1, 1, + 1, 3, 1, 1, 1, 2, 1, 1, 1, 1, + 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 3, 4, 4, 2, 3, 5, 1, 1, 2, 3, + 5, 3, 5, 3, 3, 5, 8, 5, 8, 5, + 0, 3, 0, 1, 3, 1, 4, 2, 0, 3, + 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, + 3, 2, 4, 3, 5, 5, 1, 3, 1, 2, + 1, 3, 4, 1, 2, 2, 1, 1, 3, 0, + 2, 0, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 0, 4, 1, 2, 2, 2, 2, 2, 2, + 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, + 1, 1, 3, 3, 0, 2, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, - 0, 1, 4, 4, 5, 6, 4, 4, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 3, 4, 5, - 4, 4, 2, 2, 4, 3, 3, 5, 3, 4, - 3, 5, 1, 0, 1, 3, 1, 1, 2, 1, - 1, 5, 0, 2, 1, 3, 1, 3, 1, 3 + 0, 1, 0, 1, 4, 4, 5, 6, 4, 4, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, + 4, 5, 4, 4, 2, 2, 4, 3, 3, 5, + 3, 4, 3, 5, 1, 0, 1, 3, 1, 1, + 2, 1, 1, 5, 0, 2, 1, 3, 1, 3, + 1, 3 }; -/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state - STATE-NUM when YYTABLE doesn't specify something else to do. Zero +/* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM. + Performed when YYTABLE doesn't specify something else to do. Zero means the default is an error. */ static const yytype_uint16 yydefact[] = { - 5, 0, 3, 0, 1, 0, 7, 0, 22, 156, - 158, 0, 0, 157, 216, 20, 6, 342, 0, 4, + 5, 0, 3, 0, 1, 0, 7, 0, 22, 157, + 159, 0, 0, 158, 218, 20, 6, 344, 0, 4, 0, 0, 0, 21, 0, 0, 0, 16, 0, 0, - 9, 22, 0, 8, 28, 126, 154, 0, 39, 154, - 0, 261, 74, 0, 0, 0, 78, 0, 0, 290, + 9, 22, 0, 8, 28, 126, 155, 0, 39, 155, + 0, 263, 74, 0, 0, 0, 78, 0, 0, 292, 91, 0, 88, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 288, 0, 25, 0, 254, 255, - 258, 256, 257, 50, 93, 133, 145, 114, 161, 160, - 127, 0, 0, 0, 181, 194, 195, 26, 213, 0, - 138, 27, 0, 19, 0, 0, 0, 0, 0, 0, - 343, 159, 11, 14, 284, 18, 22, 13, 17, 155, - 262, 152, 0, 0, 0, 0, 160, 187, 191, 177, - 175, 176, 174, 263, 133, 0, 292, 247, 0, 208, - 133, 266, 292, 150, 151, 0, 0, 274, 291, 267, - 0, 0, 292, 0, 0, 36, 48, 0, 29, 272, - 153, 0, 122, 117, 118, 121, 115, 116, 0, 0, - 147, 0, 148, 172, 170, 171, 119, 120, 0, 289, - 0, 217, 0, 32, 0, 0, 0, 0, 0, 55, - 0, 0, 0, 54, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 139, 0, - 0, 288, 259, 0, 139, 215, 0, 0, 0, 0, - 308, 0, 0, 208, 0, 0, 309, 0, 0, 23, - 285, 0, 12, 247, 0, 0, 192, 168, 166, 167, - 164, 165, 196, 0, 0, 293, 72, 0, 75, 0, - 71, 162, 241, 160, 244, 149, 245, 286, 0, 247, - 0, 202, 79, 76, 156, 0, 201, 0, 284, 238, - 226, 0, 64, 0, 0, 199, 270, 284, 224, 236, - 300, 0, 89, 38, 222, 284, 49, 31, 218, 284, - 0, 0, 40, 0, 173, 146, 0, 0, 35, 284, - 0, 0, 51, 95, 110, 113, 96, 100, 101, 99, - 111, 98, 97, 94, 112, 102, 103, 104, 105, 106, - 107, 108, 109, 282, 123, 276, 286, 0, 128, 289, - 0, 0, 286, 282, 253, 60, 251, 250, 268, 252, - 0, 53, 52, 275, 0, 0, 0, 0, 316, 0, - 0, 0, 0, 0, 315, 0, 310, 311, 312, 0, - 344, 0, 0, 294, 0, 0, 0, 15, 10, 0, - 0, 0, 178, 188, 66, 73, 0, 0, 292, 163, - 242, 243, 287, 248, 210, 0, 0, 0, 292, 0, - 234, 0, 247, 237, 285, 0, 0, 0, 0, 300, - 0, 0, 285, 0, 301, 229, 0, 300, 0, 285, - 0, 285, 0, 42, 273, 0, 0, 0, 197, 168, - 166, 167, 165, 139, 190, 189, 285, 0, 44, 0, - 139, 141, 278, 279, 286, 0, 286, 287, 0, 0, - 0, 131, 288, 260, 287, 0, 0, 0, 0, 214, - 0, 0, 323, 313, 314, 294, 298, 0, 296, 0, - 322, 337, 0, 0, 339, 340, 0, 0, 0, 0, - 0, 300, 0, 0, 307, 0, 295, 302, 306, 303, - 210, 169, 0, 0, 0, 0, 246, 247, 160, 211, - 186, 184, 185, 182, 183, 207, 210, 209, 80, 77, - 235, 239, 0, 227, 200, 193, 0, 0, 92, 62, - 65, 0, 231, 0, 300, 225, 198, 271, 228, 64, - 223, 37, 219, 30, 41, 0, 282, 45, 220, 284, - 47, 33, 43, 282, 0, 287, 283, 136, 0, 277, - 124, 130, 129, 0, 134, 135, 0, 269, 325, 0, - 0, 316, 0, 315, 0, 332, 348, 299, 0, 0, - 0, 346, 297, 326, 338, 0, 304, 0, 317, 0, - 300, 328, 0, 345, 333, 0, 69, 68, 292, 0, - 247, 203, 84, 210, 0, 59, 0, 300, 300, 230, - 0, 169, 0, 285, 0, 46, 0, 139, 143, 140, - 280, 281, 125, 132, 61, 324, 333, 294, 321, 0, - 0, 300, 320, 0, 0, 318, 305, 329, 294, 294, - 336, 205, 334, 67, 70, 212, 0, 86, 240, 0, - 0, 56, 0, 63, 233, 232, 90, 137, 221, 34, - 142, 282, 327, 0, 349, 319, 330, 347, 0, 0, - 0, 210, 0, 85, 81, 0, 0, 0, 333, 341, - 333, 335, 204, 82, 87, 58, 57, 144, 331, 206, - 292, 0, 83 + 0, 0, 0, 0, 290, 0, 25, 0, 256, 257, + 260, 258, 259, 50, 93, 134, 146, 114, 163, 162, + 127, 0, 0, 0, 183, 196, 197, 26, 215, 0, + 139, 27, 0, 19, 0, 0, 0, 0, 0, 0, + 345, 160, 161, 11, 14, 286, 18, 22, 13, 17, + 156, 264, 153, 0, 0, 0, 0, 162, 189, 193, + 179, 177, 178, 176, 265, 134, 0, 294, 249, 0, + 210, 134, 268, 294, 151, 152, 0, 0, 276, 293, + 269, 0, 0, 294, 0, 0, 36, 48, 0, 29, + 274, 154, 0, 122, 117, 118, 121, 115, 116, 0, + 0, 148, 0, 149, 174, 172, 173, 119, 120, 0, + 291, 0, 219, 0, 32, 0, 0, 0, 0, 0, + 55, 0, 0, 0, 54, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 140, + 0, 0, 290, 261, 0, 140, 217, 0, 0, 0, + 0, 310, 0, 0, 210, 0, 0, 311, 0, 0, + 23, 287, 0, 12, 249, 0, 0, 194, 170, 168, + 169, 166, 167, 198, 0, 0, 295, 72, 0, 75, + 0, 71, 164, 243, 162, 246, 150, 247, 288, 0, + 249, 0, 204, 79, 76, 157, 0, 203, 0, 286, + 240, 228, 0, 64, 0, 0, 201, 272, 286, 226, + 238, 302, 0, 89, 38, 224, 286, 49, 31, 220, + 286, 0, 0, 40, 0, 175, 147, 0, 0, 35, + 286, 0, 0, 51, 95, 110, 113, 96, 100, 101, + 99, 111, 98, 97, 94, 112, 102, 103, 104, 105, + 106, 107, 108, 109, 284, 123, 278, 288, 0, 128, + 291, 0, 0, 288, 284, 255, 60, 253, 252, 270, + 254, 0, 53, 52, 277, 0, 0, 0, 0, 318, + 0, 0, 0, 0, 0, 317, 0, 312, 313, 314, + 0, 346, 0, 0, 296, 0, 0, 0, 15, 10, + 0, 0, 0, 180, 190, 66, 73, 0, 0, 294, + 165, 244, 245, 289, 250, 212, 0, 0, 0, 294, + 0, 236, 0, 249, 239, 287, 0, 0, 0, 0, + 302, 0, 0, 287, 0, 303, 231, 0, 302, 0, + 287, 0, 287, 0, 42, 275, 0, 0, 0, 199, + 170, 168, 169, 167, 140, 192, 191, 287, 0, 44, + 0, 140, 142, 280, 281, 288, 0, 288, 289, 0, + 0, 0, 131, 290, 262, 289, 0, 0, 0, 0, + 216, 0, 0, 325, 315, 316, 296, 300, 0, 298, + 0, 324, 339, 0, 0, 341, 342, 0, 0, 0, + 0, 0, 302, 0, 0, 309, 0, 297, 304, 308, + 305, 212, 171, 0, 0, 0, 0, 248, 249, 162, + 213, 188, 186, 187, 184, 185, 209, 212, 211, 80, + 77, 237, 241, 0, 229, 202, 195, 0, 0, 92, + 62, 65, 0, 233, 0, 302, 227, 200, 273, 230, + 64, 225, 37, 221, 30, 41, 0, 284, 45, 222, + 286, 47, 33, 43, 284, 0, 289, 285, 137, 0, + 279, 124, 130, 129, 0, 135, 136, 0, 271, 327, + 0, 0, 318, 0, 317, 0, 334, 350, 301, 0, + 0, 0, 348, 299, 328, 340, 0, 306, 0, 319, + 0, 302, 330, 0, 347, 335, 0, 69, 68, 294, + 0, 249, 205, 84, 212, 0, 59, 0, 302, 302, + 232, 0, 171, 0, 287, 0, 46, 0, 140, 144, + 141, 282, 283, 125, 290, 132, 61, 326, 335, 296, + 323, 0, 0, 302, 322, 0, 0, 320, 307, 331, + 296, 296, 338, 207, 336, 67, 70, 214, 0, 86, + 242, 0, 0, 56, 0, 63, 235, 234, 90, 138, + 223, 34, 143, 284, 0, 329, 0, 351, 321, 332, + 349, 0, 0, 0, 212, 0, 85, 81, 0, 0, + 0, 133, 335, 343, 335, 337, 206, 82, 87, 58, + 57, 145, 333, 208, 294, 0, 83 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 1, 6, 2, 3, 14, 21, 30, 104, 31, - 8, 24, 16, 17, 65, 326, 67, 148, 517, 518, - 144, 145, 68, 499, 327, 437, 500, 576, 387, 365, - 472, 236, 237, 238, 69, 126, 252, 70, 132, 377, - 572, 643, 660, 617, 644, 71, 142, 398, 72, 140, - 73, 74, 75, 76, 313, 422, 423, 589, 77, 315, - 242, 135, 78, 149, 110, 116, 13, 80, 81, 244, - 245, 162, 118, 82, 83, 479, 227, 84, 229, 230, - 85, 86, 87, 129, 213, 88, 251, 485, 89, 90, - 22, 279, 519, 275, 267, 258, 268, 269, 270, 260, - 383, 246, 247, 248, 328, 329, 321, 330, 271, 151, - 92, 316, 424, 425, 221, 373, 170, 139, 253, 465, - 550, 544, 395, 100, 211, 217, 610, 442, 346, 347, - 348, 350, 551, 546, 611, 612, 455, 456, 25, 466, - 552, 547 + -1, 1, 6, 2, 3, 14, 21, 30, 105, 31, + 8, 24, 16, 17, 65, 327, 67, 149, 518, 519, + 145, 146, 68, 500, 328, 438, 501, 577, 388, 366, + 473, 237, 238, 239, 69, 127, 253, 70, 133, 378, + 573, 646, 664, 619, 647, 71, 143, 399, 72, 141, + 73, 74, 75, 76, 314, 423, 424, 590, 77, 316, + 243, 136, 78, 150, 111, 117, 13, 80, 81, 245, + 246, 163, 119, 82, 83, 480, 228, 84, 230, 231, + 85, 86, 87, 130, 214, 88, 252, 486, 89, 90, + 22, 280, 520, 276, 268, 259, 269, 270, 271, 261, + 384, 247, 248, 249, 329, 330, 322, 331, 272, 152, + 92, 317, 425, 426, 222, 374, 171, 140, 254, 466, + 551, 545, 396, 100, 212, 218, 612, 443, 347, 348, + 349, 351, 552, 547, 613, 614, 456, 457, 25, 467, + 553, 548 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -485 +#define YYPACT_NINF -474 static const yytype_int16 yypact[] = { - -485, 67, 35, 55, -485, 44, -485, 64, -485, -485, - -485, 96, 38, -485, 77, 85, -485, -485, 66, -485, - 34, 84, 1059, -485, 86, 294, 147, -485, 165, 210, - -485, 55, 221, -485, -485, -485, 44, 1762, -485, 44, - 290, -485, -485, 442, 290, 44, -485, 80, 69, 1608, - -485, 80, -485, 450, 452, 1608, 1608, 1608, 1608, 1608, - 1608, 1651, 1608, 1608, 920, 157, -485, 460, -485, -485, - -485, -485, -485, 718, -485, -485, 167, 344, -485, 176, - -485, 180, 193, 80, 206, -485, -485, -485, 218, 91, - -485, -485, 76, -485, 205, 10, 260, 205, 205, 223, - -485, -485, -485, -485, 230, -485, -485, -485, -485, -485, - -485, -485, 237, 1770, 1770, 1770, -485, 236, -485, -485, - -485, -485, -485, -485, 220, 344, 1608, 990, 241, 235, - 262, -485, 1608, -485, -485, 405, 1770, 2090, 254, -485, - 297, 444, 1608, 61, 1770, -485, -485, 271, -485, -485, - -485, 671, -485, -485, -485, -485, -485, -485, 1694, 1651, - 2090, 291, -485, 181, -485, 60, -485, -485, 287, 2090, - 301, -485, 496, -485, 912, 1608, 1608, 1608, 1608, -485, - 1608, 1608, 1608, -485, 1608, 1608, 1608, 1608, 1608, 1608, - 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, -485, 1290, - 468, 1608, -485, 1608, -485, -485, 1221, 1608, 1608, 1608, - -485, 573, 44, 235, 275, 347, -485, 1301, 1301, -485, - 113, 302, -485, 990, 358, 1770, -485, -485, -485, -485, - -485, -485, -485, 316, 44, -485, -485, 340, -485, 78, - 318, 1770, -485, 990, -485, -485, -485, 307, 325, 990, - 1221, -485, -485, 324, 117, 365, -485, 343, 337, -485, - -485, 333, -485, 32, 23, -485, -485, 350, -485, -485, - 406, 1737, -485, -485, -485, 351, -485, -485, -485, 352, - 1608, 44, 354, 1796, -485, 353, 1770, 1770, -485, 359, - 1608, 357, 2090, 1928, -485, 2114, 1212, 1212, 1212, 1212, - -485, 1212, 1212, 2138, -485, 566, 566, 566, 566, -485, - -485, -485, -485, 1345, -485, -485, 31, 1400, -485, 1988, - 360, 1147, 1955, 1345, -485, -485, -485, -485, -485, -485, - 95, 254, 254, 2090, 1857, 368, 361, 371, -485, 363, - 427, 1301, 247, 51, -485, 374, -485, -485, -485, 1890, - -485, 36, 382, 44, 384, 385, 387, -485, -485, 391, - 1770, 395, -485, -485, -485, -485, 1455, 1510, 1608, -485, - -485, -485, 990, -485, 1823, 399, 135, 340, 1608, 44, - 397, 403, 990, -485, 542, 407, 1770, 278, 365, 406, - 365, 411, 364, 413, -485, -485, 44, 406, 430, 44, - 423, 44, 425, 254, -485, 1608, 1849, 1770, -485, 216, - 219, 274, 288, -485, -485, -485, 44, 426, 254, 1608, - -485, 2018, -485, -485, 414, 422, 416, 1651, 433, 434, - 436, -485, 1608, -485, -485, 439, 437, 1221, 1147, -485, - 1301, 466, -485, -485, -485, 44, 1882, 1301, 44, 1301, - -485, -485, 504, 207, -485, -485, 446, 438, 1301, 247, - 1301, 406, 44, 44, -485, 453, 455, -485, -485, -485, - 1823, -485, 1221, 1608, 1608, 467, -485, 990, 472, -485, - -485, -485, -485, -485, -485, -485, 1823, -485, -485, -485, - -485, -485, 475, -485, -485, -485, 1651, 470, -485, -485, - -485, 490, -485, 493, 406, -485, -485, -485, -485, -485, - -485, -485, -485, -485, 254, 495, 1345, -485, -485, 498, - 912, -485, 254, 1345, 1553, 1345, -485, -485, 497, -485, - -485, -485, -485, 486, -485, -485, 143, -485, -485, 501, - 502, 473, 508, 513, 505, -485, -485, 515, 503, 1301, - 511, -485, 518, -485, -485, 533, -485, 1301, -485, 522, - 406, -485, 526, -485, 1916, 144, 2090, 2090, 1608, 527, - 990, -485, -485, 1823, 39, -485, 1147, 406, 406, -485, - 315, 293, 521, 44, 548, 357, 525, -485, 2090, -485, - -485, -485, -485, -485, -485, -485, 1916, 44, -485, 1882, - 1301, 406, -485, 44, 207, -485, -485, -485, 44, 44, - -485, -485, -485, -485, -485, -485, 551, 572, -485, 1608, - 1608, -485, 1651, 550, -485, -485, -485, -485, -485, -485, - -485, 1345, -485, 558, -485, -485, -485, -485, 563, 564, - 565, 1823, 46, -485, -485, 2042, 2066, 559, 1916, -485, - 1916, -485, -485, -485, -485, -485, -485, -485, -485, -485, - 1608, 340, -485 + -474, 48, 28, 35, -474, 258, -474, 37, -474, -474, + -474, 61, 12, -474, 85, 107, -474, -474, 70, -474, + 156, 82, 1059, -474, 122, 328, 22, -474, 56, 199, + -474, 35, 211, -474, -474, -474, 258, 767, -474, 258, + 459, -474, -474, 152, 459, 258, -474, 23, 145, 1650, + -474, 23, -474, 294, 359, 1650, 1650, 1650, 1650, 1650, + 1650, 1693, 1650, 1650, 1289, 159, -474, 412, -474, -474, + -474, -474, -474, 939, -474, -474, 157, 302, -474, 168, + -474, 175, 184, 23, 204, -474, -474, -474, 219, 54, + -474, -474, 47, -474, 227, -12, 269, 227, 227, 239, + -474, -474, -474, -474, -474, 240, -474, -474, -474, -474, + -474, -474, -474, 250, 1813, 1813, 1813, -474, 259, -474, + -474, -474, -474, -474, -474, 64, 302, 1650, 1805, 262, + 260, 174, -474, 1650, -474, -474, 221, 1813, 2166, 255, + -474, 290, 237, 1650, 304, 1813, -474, -474, 420, -474, + -474, -474, 580, -474, -474, -474, -474, -474, -474, 1736, + 1693, 2166, 280, -474, 253, -474, 50, -474, -474, 275, + 2166, 285, -474, 430, -474, 612, 1650, 1650, 1650, 1650, + -474, 1650, 1650, 1650, -474, 1650, 1650, 1650, 1650, 1650, + 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, -474, + 1332, 428, 1650, -474, 1650, -474, -474, 1234, 1650, 1650, + 1650, -474, 763, 258, 260, 293, 369, -474, 1992, 1992, + -474, 51, 326, -474, 1805, 392, 1813, -474, -474, -474, + -474, -474, -474, -474, 341, 258, -474, -474, 371, -474, + 89, 342, 1813, -474, 1805, -474, -474, -474, 335, 360, + 1805, 1234, -474, -474, 357, 99, 399, -474, 365, 380, + -474, -474, 377, -474, 173, 151, -474, -474, 381, -474, + -474, 456, 1779, -474, -474, -474, 401, -474, -474, -474, + 404, 1650, 258, 366, 1838, -474, 405, 1813, 1813, -474, + 407, 1650, 410, 2166, 650, -474, 2190, 877, 877, 877, + 877, -474, 877, 877, 2214, -474, 461, 461, 461, 461, + -474, -474, -474, -474, 1387, -474, -474, 52, 1442, -474, + 2064, 411, 1160, 2031, 1387, -474, -474, -474, -474, -474, + -474, 19, 255, 255, 2166, 1905, 447, 441, 439, -474, + 444, 505, 1992, 225, 27, -474, 454, -474, -474, -474, + 1931, -474, 125, 458, 258, 460, 465, 466, -474, -474, + 463, 1813, 480, -474, -474, -474, -474, 1497, 1552, 1650, + -474, -474, -474, 1805, -474, 1872, 484, 24, 371, 1650, + 258, 485, 487, 1805, -474, 472, 481, 1813, 81, 399, + 456, 399, 490, 289, 483, -474, -474, 258, 456, 519, + 258, 495, 258, 496, 255, -474, 1650, 1897, 1813, -474, + 321, 349, 350, 354, -474, -474, -474, 258, 497, 255, + 1650, -474, 2094, -474, -474, 488, 491, 489, 1693, 498, + 500, 502, -474, 1650, -474, -474, 506, 503, 1234, 1160, + -474, 1992, 534, -474, -474, -474, 258, 1958, 1992, 258, + 1992, -474, -474, 565, 149, -474, -474, 510, 504, 1992, + 225, 1992, 456, 258, 258, -474, 514, 507, -474, -474, + -474, 1872, -474, 1234, 1650, 1650, 515, -474, 1805, 520, + -474, -474, -474, -474, -474, -474, -474, 1872, -474, -474, + -474, -474, -474, 518, -474, -474, -474, 1693, 517, -474, + -474, -474, 524, -474, 525, 456, -474, -474, -474, -474, + -474, -474, -474, -474, -474, 255, 526, 1387, -474, -474, + 527, 612, -474, 255, 1387, 1595, 1387, -474, -474, 530, + -474, -474, -474, -474, 116, -474, -474, 141, -474, -474, + 539, 540, 521, 542, 546, 538, -474, -474, 548, 543, + 1992, 549, -474, 552, -474, -474, 562, -474, 1992, -474, + 556, 456, -474, 560, -474, 1984, 238, 2166, 2166, 1650, + 561, 1805, -474, -474, 1872, 32, -474, 1160, 456, 456, + -474, 186, 370, 554, 258, 563, 410, 557, -474, 2166, + -474, -474, -474, -474, 1650, -474, -474, -474, 1984, 258, + -474, 1958, 1992, 456, -474, 258, 149, -474, -474, -474, + 258, 258, -474, -474, -474, -474, -474, -474, 564, 613, + -474, 1650, 1650, -474, 1693, 566, -474, -474, -474, -474, + -474, -474, -474, 1387, 558, -474, 571, -474, -474, -474, + -474, 577, 582, 583, 1872, 36, -474, -474, 2118, 2142, + 572, -474, 1984, -474, 1984, -474, -474, -474, -474, -474, + -474, -474, -474, -474, 1650, 371, -474 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -485, -485, -485, -485, -485, -485, -485, -6, -485, -485, - 597, -485, -3, -485, -485, 608, -485, -131, -28, 50, - -485, -135, -106, -485, -7, -485, -485, -485, 125, -370, - -485, -485, -485, -485, -485, -485, -138, -485, -485, -485, - -485, -485, -485, -485, -485, -485, -485, -485, -485, -485, - 665, 15, 116, -485, -190, 111, 112, -485, 164, -59, - 398, 137, 14, 367, 603, -5, 454, 432, -485, 402, - -50, 491, -485, -485, -485, -485, -36, 18, -34, -9, - -485, -485, -485, -485, -485, 257, 441, -445, -485, -485, - -485, -485, -485, -485, -485, -485, 259, -116, -218, 265, - -485, 284, -485, -217, -286, 636, -485, -237, -485, -62, - -24, 166, -485, -314, -246, -265, -177, -485, -115, -415, - -485, -485, -379, -485, -8, -485, 435, -485, 326, 225, - 327, 204, 65, 70, -484, -485, -426, 211, -485, 462, - -485, -485 + -474, -474, -474, -474, -474, -474, -474, -15, -474, -474, + 616, -474, -3, -474, -474, 622, -474, -125, -27, 66, + -474, -124, -112, -474, 11, -474, -474, -474, 147, -368, + -474, -474, -474, -474, -474, -474, -140, -474, -474, -474, + -474, -474, -474, -474, -474, -474, -474, -474, -474, -474, + 532, 10, 247, -474, -194, 132, 135, -474, 279, -59, + 418, 67, 5, 384, 624, 425, 317, 20, -474, 424, + 636, 509, -474, -474, -474, -474, -36, -37, -31, -49, + -474, -474, -474, -474, -474, -32, 464, -473, -474, -474, + -474, -474, -474, -474, -474, -474, 277, -119, -231, 287, + -474, 300, -474, -205, -300, 652, -474, -242, -474, -63, + 106, 182, -474, -316, -241, -285, -195, -474, -111, -420, + -474, -474, -245, -474, 402, -474, -176, -474, 345, 249, + 346, 218, 87, 96, -415, -474, -429, 252, -474, 522, + -474, -474 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If positive, shift that token. If negative, reduce the rule which - number is the opposite. If zero, do what YYDEFACT says. - If YYTABLE_NINF, syntax error. */ -#define YYTABLE_NINF -275 + number is the opposite. If YYTABLE_NINF, syntax error. */ +#define YYTABLE_NINF -277 static const yytype_int16 yytable[] = { - 12, 119, 161, 121, 272, 174, 359, 488, 274, 436, - 502, 240, 385, 376, 323, 32, 278, 79, 508, 259, - 235, 393, 103, 32, 320, 138, 235, 555, 107, 400, - 540, 111, 375, 402, 111, 433, 235, 27, 128, 173, - 111, 571, 426, 417, 619, 389, 391, 380, 146, 150, - 109, 428, 164, 109, 457, 120, 380, 435, 9, 131, - 5, -213, 150, 226, 232, 233, 653, 4, 9, 212, - 152, 153, 154, 155, 156, 157, 390, 166, 167, 163, - 7, 207, 561, 366, 11, 9, 261, 214, 15, 216, - 218, 388, 205, 28, 276, -213, 462, 29, 20, 18, - 19, 282, 239, 222, 620, 621, 427, 10, 11, 23, - 174, 463, 632, 325, 622, 133, 27, 10, 11, -179, - -234, 273, 243, 458, 291, 579, 133, -213, 618, 26, - 111, 228, 228, 228, 10, 11, 111, 9, 146, 381, - 136, 208, 150, 367, 289, 228, 33, 134, 93, 257, - 164, 209, 537, 209, 228, 266, 124, 438, 134, 526, - 130, 528, 228, 439, 658, 492, 659, 150, 27, 228, - 501, 101, 503, 152, 156, 361, 29, 163, 638, -234, - 379, 607, 633, 331, 332, -234, 10, 11, 141, 9, - 164, 369, 228, 639, 640, 318, 652, 438, 624, 625, - 536, 79, 582, 487, 125, 438, 438, 349, 125, 586, - 451, 594, 613, 105, 357, 32, -181, 163, 243, 171, - 204, 397, 636, 516, 108, 102, 206, -265, 29, 363, - 523, 9, -265, 408, 198, 565, 414, 415, 10, 11, - -180, 228, -152, 228, 243, 79, 202, 409, -181, 411, - 451, -177, 203, 475, -175, 533, 403, 452, 430, 228, - 569, 228, 235, 489, 510, -180, 418, 228, 259, -264, - 512, 9, 235, 584, -264, -177, 150, -179, -175, 11, - 10, 11, -265, -177, 215, 496, -175, 219, -265, 228, - 497, 662, 220, 35, 122, 9, 223, 452, 37, 234, - 249, 410, 250, 94, 228, 228, 453, 112, 164, -176, - 408, 95, 47, 48, 9, 96, 79, 647, 165, 51, - 10, 11, 496, -174, -264, 97, 98, 497, -178, 209, - -264, 277, 262, -176, 353, 163, 495, 454, 480, 623, - 482, -176, 331, 332, 10, 11, 498, -174, 349, 61, - 354, 285, -178, 616, 520, -174, 226, 515, 99, 286, - -178, 64, 358, 10, 11, 483, 360, 243, 529, 478, - 231, 231, 231, 287, 490, 364, 362, 243, 228, 111, - 368, 514, 372, 626, 231, 374, 378, 111, 254, 380, - 228, 111, 481, 231, 146, 522, 150, 631, 257, 384, - 228, 231, 382, 199, 228, 386, 266, 200, 231, 394, - 507, 150, 392, 399, 401, 201, 165, 263, 164, 405, - 413, 416, 419, 264, 228, 228, 432, 445, 446, 254, - 448, 231, 79, 79, 480, 449, 482, 10, 11, 459, - 349, 542, 447, 549, 464, 163, 467, 468, 454, 469, - 480, 470, 482, 614, 454, 471, 165, 562, 349, 486, - 379, 483, 235, 491, 255, 509, 9, 79, 254, 117, - 585, 504, 243, 256, 9, 494, 9, 483, 10, 11, - 231, 506, 231, 511, 9, 513, 521, 164, 481, 525, - 527, 434, 9, 530, 531, 228, 532, 263, 231, 534, - 231, 127, 340, 264, 481, 535, 231, 554, 556, 143, - 557, 147, 265, 564, 163, 10, 11, 10, 11, 172, - 9, 520, 661, 10, 11, 10, 11, 317, 231, 568, - 463, 570, -156, 10, 11, 573, 575, 480, 228, 482, - 412, 10, 11, 231, 231, 117, 117, 117, 210, 210, - 577, 210, 210, 578, 235, 581, 288, 592, 593, 117, - 583, 595, 596, 529, 483, 243, 254, 597, 117, 10, - 11, 79, -157, 598, 165, 600, 117, 599, 150, 602, - 603, 334, 604, 117, 606, 608, 642, 615, 228, 627, - 335, 481, 349, 630, 542, 336, 337, 338, 549, 454, - 177, 255, 339, 349, 349, 480, 117, 482, 629, 340, - 185, 641, 438, 164, 189, 10, 11, 231, 648, 194, - 195, 196, 197, 649, 650, 651, 341, 657, 106, 231, - 66, 484, 483, 628, 580, 654, 590, 591, 342, 231, - 163, 370, 123, 231, 343, 371, 345, 11, 404, 493, - 284, 505, 355, 356, 352, 117, 476, 117, 91, 481, - 443, 444, 574, 231, 231, 344, 539, 563, 637, 634, - 559, 344, 344, 117, 351, 117, 0, 0, 0, 37, - 0, 117, 0, 0, 165, 0, 0, 0, 112, 0, - 0, 0, 0, 47, 48, 9, 0, 0, 0, 0, - 51, 0, 0, 117, 0, 0, 0, 224, 0, 0, - 0, 0, 0, 0, 137, 117, 0, 0, 117, 117, - 0, 0, 175, -274, 114, 0, 160, 484, 0, 169, - 225, 0, 0, 0, 231, 0, 280, 0, 0, 0, - 0, 0, 64, 484, 10, 11, 281, 0, 0, 0, - 0, 176, 177, 165, 178, 179, 180, 181, 182, 0, - 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, - 193, 194, 195, 196, 197, 0, 450, 231, 0, 0, - 0, 0, 0, -274, 461, 0, 0, 0, 344, 0, - 0, 0, 117, -274, 0, 344, 0, 0, 0, 0, - 0, 0, 0, 344, 117, 0, 117, 0, 0, 0, - 0, 0, 0, 0, 117, 0, 0, 0, 117, 0, - 0, 0, 0, 0, 0, 0, 0, 231, 0, 0, - 484, 0, 0, 0, 0, 0, 0, 0, 117, 117, - 292, 293, 294, 295, 0, 296, 297, 298, 0, 299, - 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, - 310, 311, 312, 0, 160, 0, 319, 0, 322, 0, - 0, 0, 137, 137, 333, 538, 0, 0, 0, 165, - 0, 545, 548, 0, 553, 0, 0, 0, 0, 0, - 0, 0, 0, 558, 344, 560, 0, 0, 484, 0, - 543, 344, 117, 344, 0, 0, 0, 0, 0, 117, - 0, 0, 344, 0, 344, 0, 0, 0, 117, 0, - 37, 0, 0, 35, 0, 0, 0, 0, 37, 112, - 0, 168, 0, 0, 47, 48, 9, 112, 0, 0, - 0, 51, 47, 48, 9, 137, 0, 0, 224, 51, - 0, 0, 117, 0, 0, 137, 55, 0, 0, 0, - 0, 0, 0, 0, 0, 114, 0, 0, 0, 56, - 57, 225, 58, 59, 0, 0, 60, 290, 421, 61, - 0, 0, 160, 64, 601, 10, 11, 281, 421, 62, - 63, 64, 605, 10, 11, 0, 0, 0, 37, 0, - 0, 241, 117, 344, 0, 117, 0, 112, 0, 0, - 0, 344, 47, 48, 9, 0, 0, 0, 344, 51, - 0, 0, 0, 0, 0, 0, 224, 0, 0, 0, - 0, 137, 137, 0, 545, 635, 0, 0, 0, 0, - 0, 0, 0, 114, 0, 0, 0, 0, 0, 225, - 344, 0, 0, 543, 344, 0, 0, 0, 0, -2, - 34, 64, 35, 10, 11, 36, 0, 37, 38, 39, - 137, 0, 40, 117, 41, 42, 43, 44, 45, 46, - 0, 47, 48, 9, 137, 0, 49, 50, 51, 52, - 53, 54, 160, 0, 0, 55, 0, 169, 0, 0, - 0, 0, 344, 0, 344, 0, 0, 0, 56, 57, + 121, 120, 162, 273, 175, 123, 122, 321, 437, 377, + 489, 324, 165, 104, 572, 236, 241, 260, 386, 360, + 275, 236, 434, 279, 164, 556, 541, 394, 108, 166, + 458, 236, 429, 390, 392, 401, 346, 621, 436, 403, + 174, 110, 356, 357, 110, 376, 101, 213, 4, 418, + 132, -215, 208, 5, 27, 206, 657, 118, 134, 27, + 7, 15, 11, 427, 18, 153, 154, 155, 156, 157, + 158, -267, 167, 168, 19, 9, -267, 229, 229, 229, + 9, 439, 232, 232, 232, -215, 439, 440, 497, 134, + 135, 229, 488, 498, 367, 102, 232, 622, 623, 459, + 229, 620, -236, 326, 223, 232, 20, 624, 229, -181, + 175, 165, 209, 232, 29, 229, 103, -215, 142, 29, + 232, 135, 210, 164, 10, 11, -267, 428, 166, 10, + 11, 23, -267, 26, 118, 118, 118, 382, 229, 538, + 527, 258, 529, 232, 33, 503, 290, 267, 118, 499, + 205, 165, 452, 509, 368, 139, 207, 118, 502, 27, + 504, -236, 380, 164, 210, 118, 451, -236, 166, 153, + 157, 656, 118, 9, 462, 381, 9, 641, 493, 636, + 9, -266, 594, 635, 93, 463, -266, 229, 595, 229, + 642, 643, 232, 497, 232, 118, 537, 381, 498, 453, + 464, 583, 106, 439, 391, 229, 358, 229, 587, 596, + 232, 128, 232, 229, 109, 28, 137, 562, 232, 29, + 517, 172, 10, 11, 199, 10, 11, 524, 452, 10, + 11, 566, 389, 240, -153, 229, -266, 662, 534, 663, + 232, 203, -266, 204, 118, 255, 118, 411, 410, 9, + 229, 229, 413, 412, 628, 232, 232, 236, 476, 431, + 580, 255, 118, -182, 118, 539, 260, 236, 490, 165, + 118, 546, 549, 570, 554, 453, 511, 513, -181, 585, + 256, 164, 9, 559, 454, 561, 166, 125, -183, 257, + 264, 131, 118, 216, 10, 11, 265, 666, 10, 11, + 439, 11, 221, 220, 118, 266, 615, 118, 118, 224, + 10, 11, -182, 255, 332, 333, 609, 650, 9, 126, + -183, 250, 235, 126, 229, 263, 484, 251, 9, 232, + 210, 10, 11, 626, 627, 625, 229, 94, 482, 481, + 286, 232, 264, 485, 483, 95, 229, 287, 265, 96, + 229, 232, 354, 144, 521, 232, -179, 288, 639, 97, + 98, 200, 10, 11, 274, 201, 618, 10, 11, 530, + 229, 229, 355, 202, 603, 232, 232, 10, 11, 165, + -179, 118, 607, 9, -177, -178, 359, 404, -179, -176, + 258, 164, 99, 118, 633, 118, 166, 419, 267, 634, + 361, 363, 508, 118, 369, -180, 365, 118, -177, -178, + 373, 211, 211, -176, 211, 211, -177, -178, 148, 379, + 375, -176, 484, 381, 383, 546, 638, 118, 118, -180, + 12, 406, 10, 11, 482, 481, 9, -180, 484, 485, + 483, 229, 385, 393, 9, 32, 232, 79, 165, 387, + 482, 481, 9, 32, 9, 485, 483, 236, 616, 395, + 164, 112, 35, 400, 112, 166, 402, 37, 129, 417, + 112, 173, 414, 332, 333, 420, 113, 433, 147, 151, + 278, 47, 48, 9, 229, 10, 11, 318, 51, 232, + 289, 118, 151, 10, 11, 178, 255, 215, 118, 217, + 219, 10, 11, 10, 11, 186, 446, 118, 447, 190, + 448, 449, 515, 450, 195, 196, 197, 198, 61, 460, + 465, 521, 468, 471, 665, 484, 523, 469, 470, 345, + 64, 256, 10, 11, 229, 345, 345, 482, 481, 232, + 472, 118, 485, 483, 487, 10, 11, 492, 380, 495, + 505, 507, 236, 244, 510, 512, 514, 522, 531, 528, + 532, 112, 533, 526, 435, 530, 535, 112, 555, 147, + 341, 536, 557, 151, 565, 165, 558, 569, 574, 571, + -157, 138, 464, 576, 578, 579, 582, 164, 37, 584, + 593, 118, 166, 161, 118, 484, 170, 113, 151, 597, + 598, 599, 47, 48, 9, -158, 600, 482, 481, 51, + 601, 606, 485, 483, 605, 602, 225, 604, 608, 610, + 37, 617, 629, 631, 644, 632, 319, 645, 439, 113, + 651, 652, 79, 115, 47, 48, 9, 653, 350, 226, + 661, 51, 654, 655, 66, 281, 32, 107, 225, 244, + 630, 64, 345, 10, 11, 282, 658, 581, 591, 345, + 364, 592, 371, 124, 118, 115, 405, 345, 372, 285, + 506, 226, 494, 477, 91, 244, 79, 291, 353, 575, + 444, 445, 564, 64, 178, 10, 11, 282, 181, 182, + 183, 540, 640, 185, 186, 187, 188, 637, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 151, 293, 294, + 295, 296, 560, 297, 298, 299, 0, 300, 301, 302, + 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, + 313, 0, 161, 0, 320, 352, 323, 0, 0, 0, + 138, 138, 334, 0, 0, 0, 0, 79, 0, 0, + 227, 233, 234, 0, 0, 0, 0, 0, 345, 0, + 0, 0, 0, 0, 544, 345, 0, 345, 455, 0, + 0, 335, 0, 262, 0, 37, 345, 0, 345, 350, + 336, 277, 0, 0, 113, 337, 338, 339, 283, 47, + 48, 9, 340, 0, 0, 0, 51, 0, 244, 341, + 479, 0, 0, 114, 0, 491, 0, 0, 244, 0, + 112, 292, 0, 138, 0, 0, 342, 0, 112, 0, + 115, 0, 112, 138, 0, 147, 116, 151, 343, 0, + 0, 0, 0, 0, 344, 0, 0, 11, 64, 0, + 10, 11, 151, 0, 0, 0, 422, 0, 0, 0, + 161, 0, 0, 0, 0, 0, 422, 0, 0, 0, + 0, 0, 362, 79, 79, 0, 0, 345, 0, 0, + 0, 350, 543, 0, 550, 345, 0, 0, 370, 455, + 0, 0, 345, 0, 0, 455, 0, 0, 563, 350, + 0, 0, 0, 0, 0, 0, 0, 0, 79, 138, + 138, 0, 0, 244, 0, 0, 0, 0, 398, 0, + 0, 178, 0, 0, 0, 345, 0, 0, 544, 345, + 409, 186, 0, 415, 416, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 0, 0, 0, 0, 138, 0, + 0, 0, 0, 176, -276, 0, 0, 0, 0, 0, + 0, 0, 138, 0, 0, 0, 0, 0, 0, 0, + 161, 0, 0, 0, 0, 170, 0, 0, 0, 345, + 0, 345, 177, 178, 0, 179, 180, 181, 182, 183, + 0, 184, 185, 186, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 244, 409, 0, 0, + 0, 0, 79, 0, -276, 0, 567, 568, 0, 151, + 0, 0, 0, 0, -276, 0, 0, 0, 0, 0, + 0, 0, 0, 496, 350, 0, 543, 0, 0, 161, + 550, 455, 0, 0, 0, 350, 350, 0, 0, 0, + 0, 0, 0, 227, 516, 0, 0, 0, 0, 422, + 0, 0, 0, 0, 0, 0, 422, 589, 422, -2, + 34, 0, 35, 0, 0, 36, 0, 37, 38, 39, + 0, 0, 40, 0, 41, 42, 43, 44, 45, 46, + 0, 47, 48, 9, 0, 0, 49, 50, 51, 52, + 53, 54, 0, 0, 0, 55, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 56, 57, 0, 58, 59, 0, 0, 60, 0, 0, 61, 0, - 0, -24, 0, 0, 0, 0, 0, 0, 62, 63, - 64, 0, 10, 11, 0, 0, 0, 0, 566, 567, - 0, 0, 0, 0, 0, 0, 0, 0, 324, 0, - 35, 0, 0, 36, -249, 37, 38, 39, 0, -249, - 40, 160, 41, 42, 112, 44, 45, 46, 0, 47, - 48, 9, 0, 0, 49, 50, 51, 52, 53, 54, - 0, 421, 0, 55, 0, 0, 0, 0, 421, 588, - 421, 0, 0, 0, 0, 0, 56, 57, 0, 58, - 59, 0, 0, 60, 0, 0, 61, 0, 0, -249, - 0, 0, 0, 0, 325, -249, 62, 63, 64, 0, - 10, 11, 324, 0, 35, 0, 0, 36, 0, 37, - 38, 39, 0, 0, 40, 0, 41, 42, 112, 44, - 45, 46, 0, 47, 48, 9, 177, 0, 49, 50, - 51, 52, 53, 54, 0, 0, 185, 55, 0, 0, - 189, 190, 191, 192, 193, 194, 195, 196, 197, 0, - 56, 57, 0, 58, 59, 0, 0, 60, 0, 0, - 61, 0, 0, -249, 645, 646, 0, 160, 325, -249, - 62, 63, 64, 35, 10, 11, 421, 0, 37, 0, - 0, 0, 0, 0, 0, 0, 0, 112, 0, 334, - 0, 0, 47, 48, 9, 0, 0, 0, 335, 51, - 0, 0, 0, 336, 337, 338, 158, 0, 0, 0, - 339, 0, 0, 0, 0, 0, 0, 340, 0, 56, - 57, 0, 58, 159, 0, 0, 60, 0, 35, 61, - 314, 0, 0, 37, 341, 0, 0, 0, 0, 62, - 63, 64, 112, 10, 11, 0, 0, 47, 48, 9, - 0, 0, 343, 0, 51, 11, 0, 0, 0, 0, - 0, 55, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 56, 57, 0, 58, 59, 0, - 0, 60, 0, 35, 61, 0, 0, 0, 37, 0, - 0, 0, 420, 0, 62, 63, 64, 112, 10, 11, - 0, 0, 47, 48, 9, 0, 0, 0, 0, 51, - 0, 429, 0, 0, 0, 0, 158, 0, 0, 0, + 0, -24, 0, 0, 0, 0, 170, 0, 62, 63, + 64, 0, 10, 11, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 648, 649, 0, 161, 586, 0, 0, + 0, 325, 0, 35, 0, 422, 36, -251, 37, 38, + 39, 0, -251, 40, 0, 41, 42, 113, 44, 45, + 46, 0, 47, 48, 9, 0, 0, 49, 50, 51, + 52, 53, 54, 0, 0, 0, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, - 57, 0, 58, 159, 0, 0, 60, 0, 35, 61, - 0, 0, 0, 37, 0, 0, 0, 0, 0, 62, - 63, 64, 112, 10, 11, 0, 0, 47, 48, 9, - 0, 473, 0, 0, 51, 0, 0, 0, 0, 0, + 57, 0, 58, 59, 0, 0, 60, 0, 0, 61, + 0, 0, -251, 0, 0, 0, 0, 326, -251, 62, + 63, 64, 0, 10, 11, 325, 0, 35, 0, 0, + 36, 0, 37, 38, 39, 0, 0, 40, 0, 41, + 42, 113, 44, 45, 46, 0, 47, 48, 9, 0, + 0, 49, 50, 51, 52, 53, 54, 0, 0, 0, + 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 56, 57, 0, 58, 59, 0, 0, + 60, 0, 35, 61, 0, 0, -251, 37, 0, 0, + 169, 326, -251, 62, 63, 64, 113, 10, 11, 0, + 0, 47, 48, 9, 0, 0, 0, 0, 51, 0, + 0, 0, 0, 0, 0, 55, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 35, 0, 0, 56, 57, + 37, 58, 59, 0, 0, 60, 0, 0, 61, 113, + 0, 0, 0, 0, 47, 48, 9, 0, 62, 63, + 64, 51, 10, 11, 0, 0, 0, 0, 159, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 56, 57, 0, 58, 160, 0, 0, 60, 0, + 35, 61, 315, 0, 0, 37, 0, 0, 0, 0, + 0, 62, 63, 64, 113, 10, 11, 0, 0, 47, + 48, 9, 0, 0, 0, 0, 51, 0, 0, 0, + 0, 0, 0, 55, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 56, 57, 0, 58, + 59, 0, 0, 60, 0, 35, 61, 0, 0, 0, + 37, 0, 0, 0, 421, 0, 62, 63, 64, 113, + 10, 11, 0, 0, 47, 48, 9, 0, 0, 0, + 0, 51, 0, 430, 0, 0, 0, 0, 159, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 56, 57, 0, 58, 160, 0, 0, 60, 0, + 35, 61, 0, 0, 0, 37, 0, 0, 0, 0, + 0, 62, 63, 64, 113, 10, 11, 0, 0, 47, + 48, 9, 0, 474, 0, 0, 51, 0, 0, 0, + 0, 0, 0, 55, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 56, 57, 0, 58, + 59, 0, 0, 60, 0, 35, 61, 0, 0, 0, + 37, 0, 0, 0, 0, 0, 62, 63, 64, 113, + 10, 11, 0, 0, 47, 48, 9, 0, 475, 0, + 0, 51, 0, 0, 0, 0, 0, 0, 55, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 35, 0, + 0, 56, 57, 37, 58, 59, 0, 0, 60, 0, + 0, 61, 113, 0, 0, 0, 0, 47, 48, 9, + 0, 62, 63, 64, 51, 10, 11, 0, 0, 0, 0, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 57, 0, 58, 59, 0, 0, 60, 0, 35, 61, 0, 0, 0, 37, 0, - 0, 0, 0, 0, 62, 63, 64, 112, 10, 11, - 0, 0, 47, 48, 9, 0, 474, 0, 0, 51, + 0, 0, 588, 0, 62, 63, 64, 113, 10, 11, + 0, 0, 47, 48, 9, 0, 0, 0, 0, 51, 0, 0, 0, 0, 0, 0, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 0, 0, 56, 57, 37, 58, 59, 0, 0, 60, 0, 0, 61, - 112, 0, 0, 0, 0, 47, 48, 9, 0, 62, - 63, 64, 51, 10, 11, 0, 0, 0, 0, 55, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 56, 57, 0, 58, 59, 0, 0, 60, - 0, 35, 61, 0, 0, 0, 37, 0, 0, 0, - 587, 0, 62, 63, 64, 112, 10, 11, 0, 0, - 47, 48, 9, 0, 0, 0, 0, 51, 0, 0, - 0, 0, 0, 0, 55, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 35, 0, 0, 56, 57, 37, - 58, 59, 0, 0, 60, 0, 0, 61, 112, 0, - 0, 0, 0, 47, 48, 9, 0, 62, 63, 64, - 51, 10, 11, 0, 0, 0, 0, 158, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 35, 0, 0, - 56, 57, 283, 58, 159, 0, 0, 60, 0, 0, - 61, 112, 0, 0, 0, 0, 47, 48, 9, 0, - 62, 63, 64, 51, 10, 11, 0, 0, 0, 0, - 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 56, 57, 37, 58, 59, 0, 0, - 60, 0, 0, 61, 112, 0, 0, 0, 0, 47, - 48, 9, 0, 62, 63, 64, 51, 10, 11, 0, - 37, 0, 0, 224, 0, 0, 0, 0, 37, 112, - 0, 0, 0, 0, 47, 48, 9, 112, 0, 0, - 114, 51, 47, 48, 9, 0, 225, 0, 113, 51, - 0, 0, 0, 0, 37, 0, 224, 0, 64, 0, - 10, 11, 396, 112, 0, 114, 0, 0, 47, 48, - 9, 115, 0, 114, 0, 51, 0, 0, 0, 225, - 0, 37, 406, 64, 0, 10, 11, 0, 0, 0, - 112, 64, 0, 10, 11, 47, 48, 9, 0, 114, - 0, 0, 51, 0, 0, 407, 0, 283, 0, 224, - 0, 0, 0, 0, 0, 334, 112, 64, 0, 10, - 11, 47, 48, 9, 335, 0, 114, 0, 51, 336, - 337, 338, 477, 0, 0, 224, 339, 0, 0, 0, - 334, 0, 0, 440, 64, 0, 10, 11, 334, 335, - 0, 460, 114, 0, 336, 337, 541, 335, 225, 0, - 341, 339, 336, 337, 338, 0, 441, 0, 340, 339, - 64, 0, 10, 11, 334, 0, 340, 0, 343, 0, - 0, 11, 0, 335, 0, 341, 0, 0, 336, 337, - 338, 0, 0, 341, 0, 339, 0, 0, 0, 0, - 0, 0, 340, 343, 0, 10, 11, 0, 0, 0, - 0, 343, 177, 0, 11, 0, 180, 181, 182, 341, - 0, 184, 185, 186, 187, 609, 189, 190, 191, 192, - 193, 194, 195, 196, 197, 0, 0, 343, 176, 177, - 11, 178, 0, 180, 181, 182, 0, 0, 184, 185, + 113, 0, 0, 0, 0, 47, 48, 9, 0, 62, + 63, 64, 51, 10, 11, 0, 0, 0, 0, 159, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, + 0, 0, 56, 57, 284, 58, 160, 0, 0, 60, + 0, 0, 61, 113, 0, 0, 0, 0, 47, 48, + 9, 0, 62, 63, 64, 51, 10, 11, 0, 0, + 0, 0, 55, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 56, 57, 37, 58, 59, + 0, 0, 60, 0, 0, 61, 113, 0, 0, 0, + 0, 47, 48, 9, 0, 62, 63, 64, 51, 10, + 11, 0, 0, 37, 0, 225, 242, 0, 0, 0, + 0, 37, 113, 0, 0, 0, 0, 47, 48, 9, + 113, 0, 115, 0, 51, 47, 48, 9, 226, 0, + 0, 225, 51, 0, 0, 0, 37, 0, 0, 225, + 64, 0, 10, 11, 397, 113, 0, 0, 115, 0, + 47, 48, 9, 0, 226, 0, 115, 51, 0, 0, + 0, 0, 226, 0, 407, 0, 64, 0, 10, 11, + 37, 0, 0, 0, 64, 0, 10, 11, 0, 113, + 0, 115, 0, 0, 47, 48, 9, 408, 0, 0, + 0, 51, 0, 0, 0, 284, 0, 0, 225, 64, + 0, 10, 11, 335, 113, 0, 0, 0, 0, 47, + 48, 9, 336, 0, 0, 115, 51, 337, 338, 339, + 0, 478, 0, 225, 340, 0, 0, 0, 0, 335, + 0, 441, 461, 64, 0, 10, 11, 0, 336, 0, + 115, 0, 0, 337, 338, 339, 226, 0, 342, 0, + 340, 0, 0, 0, 442, 0, 335, 341, 64, 0, + 10, 11, 0, 0, 0, 336, 344, 0, 0, 11, + 337, 338, 542, 0, 342, 0, 0, 340, 0, 0, + 0, 0, 335, 0, 341, 0, 0, 0, 0, 0, + 335, 336, 344, 0, 0, 11, 337, 338, 339, 336, + 0, 342, 0, 340, 337, 338, 339, 0, 0, 0, + 341, 340, 0, 0, 0, 0, 0, 0, 341, 344, + 0, 10, 11, 0, 0, 0, 0, 342, 0, 0, + 0, 0, 0, 611, 0, 342, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 344, 0, 0, 11, 0, + 0, 0, 0, 344, 177, 178, 11, 179, 0, 181, + 182, 183, 0, 0, 185, 186, 187, 188, 189, 190, + 191, 192, 193, 194, 195, 196, 197, 198, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 177, 178, 0, + 179, 0, 181, 182, 183, 0, 435, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 0, 0, 0, 0, 0, 0, 177, 178, 0, + 179, 0, 181, 182, 183, 0, 432, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 177, 178, 0, 179, 0, 181, 182, 183, 0, + 525, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 177, 178, 0, 179, 0, + 181, 182, 183, 0, 659, 185, 186, 187, 188, 189, + 190, 191, 192, 193, 194, 195, 196, 197, 198, 177, + 178, 0, 179, 0, 181, 182, 183, 0, 660, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, - 196, 197, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 176, 177, 0, 178, 0, 180, 181, 182, 0, - 434, 184, 185, 186, 187, 188, 189, 190, 191, 192, - 193, 194, 195, 196, 197, 0, 0, 0, 0, 0, - 0, 176, 177, 0, 178, 0, 180, 181, 182, 0, - 431, 184, 185, 186, 187, 188, 189, 190, 191, 192, - 193, 194, 195, 196, 197, 176, 177, 0, 178, 0, - 180, 181, 182, 0, 524, 184, 185, 186, 187, 188, - 189, 190, 191, 192, 193, 194, 195, 196, 197, 176, - 177, 0, 178, 0, 180, 181, 182, 0, 655, 184, - 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, - 195, 196, 197, 176, 177, 0, 178, 0, 180, 181, - 182, 0, 656, 184, 185, 186, 187, 188, 189, 190, - 191, 192, 193, 194, 195, 196, 197, 176, 177, 0, - 0, 0, 180, 181, 182, 0, 0, 184, 185, 186, - 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, - 197, 176, 177, 0, 0, 0, 180, 181, 182, 0, - 0, 184, 185, 186, 187, 0, 189, 190, 191, 192, - 193, 194, 195, 196, 197 + 196, 197, 198, 177, 178, 0, 0, 0, 181, 182, + 183, 0, 0, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 177, 178, 0, + 0, 0, 181, 182, 183, 0, 0, 185, 186, 187, + 188, 0, 190, 191, 192, 193, 194, 195, 196, 197, + 198 }; +#define yypact_value_is_default(yystate) \ + ((yystate) == (-474)) + +#define yytable_value_is_error(yytable_value) \ + YYID (0) + static const yytype_int16 yycheck[] = { - 5, 37, 61, 37, 142, 67, 223, 377, 143, 323, - 389, 126, 258, 250, 204, 20, 147, 22, 397, 135, - 126, 267, 28, 28, 201, 49, 132, 453, 31, 275, - 445, 36, 249, 279, 39, 321, 142, 3, 43, 67, - 45, 486, 11, 289, 5, 263, 264, 24, 53, 54, - 36, 316, 61, 39, 3, 37, 24, 322, 24, 45, - 25, 1, 67, 113, 114, 115, 20, 0, 24, 59, - 55, 56, 57, 58, 59, 60, 53, 62, 63, 61, - 25, 5, 461, 5, 74, 24, 136, 95, 24, 97, - 98, 59, 1, 59, 144, 35, 60, 63, 21, 3, - 62, 151, 126, 106, 65, 66, 75, 73, 74, 24, - 172, 75, 596, 67, 75, 35, 3, 73, 74, 59, - 3, 60, 127, 72, 174, 504, 35, 67, 573, 63, - 135, 113, 114, 115, 73, 74, 141, 24, 143, 255, - 71, 65, 147, 65, 172, 127, 62, 67, 62, 135, - 159, 75, 438, 75, 136, 141, 40, 62, 67, 424, - 44, 426, 144, 68, 648, 382, 650, 172, 3, 151, - 388, 24, 390, 158, 159, 225, 63, 159, 604, 62, - 63, 560, 597, 207, 208, 68, 73, 74, 51, 24, - 199, 241, 174, 608, 609, 200, 641, 62, 577, 578, - 437, 206, 516, 68, 40, 62, 62, 212, 44, 523, - 3, 68, 68, 3, 220, 220, 35, 199, 223, 62, - 83, 271, 601, 413, 3, 60, 89, 7, 63, 234, - 420, 24, 12, 283, 67, 472, 286, 287, 73, 74, - 59, 223, 66, 225, 249, 250, 66, 283, 67, 283, - 3, 35, 59, 368, 35, 432, 280, 50, 317, 241, - 477, 243, 368, 378, 399, 59, 290, 249, 384, 7, - 401, 24, 378, 519, 12, 59, 281, 59, 59, 74, - 73, 74, 62, 67, 24, 7, 67, 64, 68, 271, - 12, 661, 62, 3, 37, 24, 59, 50, 8, 63, - 59, 283, 67, 9, 286, 287, 59, 17, 317, 35, - 360, 17, 22, 23, 24, 21, 321, 631, 61, 29, - 73, 74, 7, 35, 62, 31, 32, 12, 35, 75, - 68, 60, 35, 59, 59, 317, 386, 342, 374, 576, - 374, 67, 366, 367, 73, 74, 68, 59, 353, 59, - 3, 60, 59, 570, 416, 67, 406, 407, 64, 72, - 67, 71, 60, 73, 74, 374, 8, 372, 427, 374, - 113, 114, 115, 72, 379, 35, 60, 382, 360, 384, - 62, 405, 75, 68, 127, 60, 62, 392, 24, 24, - 372, 396, 374, 136, 399, 419, 401, 587, 384, 62, - 382, 144, 59, 59, 386, 72, 392, 63, 151, 3, - 396, 416, 62, 62, 62, 71, 159, 53, 427, 65, - 67, 62, 65, 59, 406, 407, 66, 59, 67, 24, - 67, 174, 437, 438, 470, 8, 470, 73, 74, 65, - 445, 446, 71, 448, 62, 427, 62, 62, 453, 62, - 486, 60, 486, 568, 459, 60, 199, 462, 463, 60, - 63, 470, 568, 60, 59, 35, 24, 472, 24, 37, - 520, 60, 477, 68, 24, 68, 24, 486, 73, 74, - 223, 68, 225, 60, 24, 60, 60, 496, 470, 75, - 68, 75, 24, 60, 60, 477, 60, 53, 241, 60, - 243, 59, 36, 59, 486, 68, 249, 3, 62, 59, - 72, 59, 68, 60, 496, 73, 74, 73, 74, 59, - 24, 583, 660, 73, 74, 73, 74, 59, 271, 62, - 75, 59, 59, 73, 74, 60, 66, 573, 520, 573, - 283, 73, 74, 286, 287, 113, 114, 115, 94, 95, - 60, 97, 98, 60, 660, 60, 60, 60, 72, 127, - 62, 60, 60, 622, 573, 570, 24, 59, 136, 73, - 74, 576, 59, 68, 317, 72, 144, 62, 583, 68, - 62, 8, 49, 151, 62, 59, 14, 60, 570, 68, - 17, 573, 597, 68, 599, 22, 23, 24, 603, 604, - 34, 59, 29, 608, 609, 641, 174, 641, 60, 36, - 44, 60, 62, 622, 48, 73, 74, 360, 60, 53, - 54, 55, 56, 60, 60, 60, 53, 68, 31, 372, - 22, 374, 641, 583, 509, 642, 525, 525, 65, 382, - 622, 243, 39, 386, 71, 243, 211, 74, 281, 384, - 159, 392, 217, 218, 213, 223, 372, 225, 22, 641, - 334, 334, 496, 406, 407, 211, 441, 463, 603, 599, - 459, 217, 218, 241, 212, 243, -1, -1, -1, 8, - -1, 249, -1, -1, 427, -1, -1, -1, 17, -1, - -1, -1, -1, 22, 23, 24, -1, -1, -1, -1, - 29, -1, -1, 271, -1, -1, -1, 36, -1, -1, - -1, -1, -1, -1, 49, 283, -1, -1, 286, 287, - -1, -1, 4, 5, 53, -1, 61, 470, -1, 64, - 59, -1, -1, -1, 477, -1, 65, -1, -1, -1, - -1, -1, 71, 486, 73, 74, 75, -1, -1, -1, - -1, 33, 34, 496, 36, 37, 38, 39, 40, -1, - 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 56, -1, 341, 520, -1, -1, - -1, -1, -1, 65, 349, -1, -1, -1, 334, -1, - -1, -1, 360, 75, -1, 341, -1, -1, -1, -1, - -1, -1, -1, 349, 372, -1, 374, -1, -1, -1, - -1, -1, -1, -1, 382, -1, -1, -1, 386, -1, - -1, -1, -1, -1, -1, -1, -1, 570, -1, -1, - 573, -1, -1, -1, -1, -1, -1, -1, 406, 407, - 175, 176, 177, 178, -1, 180, 181, 182, -1, 184, - 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, - 195, 196, 197, -1, 199, -1, 201, -1, 203, -1, - -1, -1, 207, 208, 209, 440, -1, -1, -1, 622, - -1, 446, 447, -1, 449, -1, -1, -1, -1, -1, - -1, -1, -1, 458, 440, 460, -1, -1, 641, -1, - 446, 447, 470, 449, -1, -1, -1, -1, -1, 477, - -1, -1, 458, -1, 460, -1, -1, -1, 486, -1, - 8, -1, -1, 3, -1, -1, -1, -1, 8, 17, - -1, 11, -1, -1, 22, 23, 24, 17, -1, -1, - -1, 29, 22, 23, 24, 280, -1, -1, 36, 29, - -1, -1, 520, -1, -1, 290, 36, -1, -1, -1, - -1, -1, -1, -1, -1, 53, -1, -1, -1, 49, - 50, 59, 52, 53, -1, -1, 56, 65, 313, 59, - -1, -1, 317, 71, 549, 73, 74, 75, 323, 69, - 70, 71, 557, 73, 74, -1, -1, -1, 8, -1, - -1, 11, 570, 549, -1, 573, -1, 17, -1, -1, - -1, 557, 22, 23, 24, -1, -1, -1, 564, 29, - -1, -1, -1, -1, -1, -1, 36, -1, -1, -1, - -1, 366, 367, -1, 599, 600, -1, -1, -1, -1, - -1, -1, -1, 53, -1, -1, -1, -1, -1, 59, - 596, -1, -1, 599, 600, -1, -1, -1, -1, 0, - 1, 71, 3, 73, 74, 6, -1, 8, 9, 10, - 405, -1, 13, 641, 15, 16, 17, 18, 19, 20, - -1, 22, 23, 24, 419, -1, 27, 28, 29, 30, - 31, 32, 427, -1, -1, 36, -1, 432, -1, -1, - -1, -1, 648, -1, 650, -1, -1, -1, 49, 50, + 37, 37, 61, 143, 67, 37, 37, 202, 324, 251, + 378, 205, 61, 28, 487, 127, 127, 136, 259, 224, + 144, 133, 322, 148, 61, 454, 446, 268, 31, 61, + 3, 143, 317, 264, 265, 276, 212, 5, 323, 280, + 67, 36, 218, 219, 39, 250, 24, 59, 0, 290, + 45, 1, 5, 25, 3, 1, 20, 37, 35, 3, + 25, 24, 74, 11, 3, 55, 56, 57, 58, 59, + 60, 7, 62, 63, 62, 24, 12, 114, 115, 116, + 24, 62, 114, 115, 116, 35, 62, 68, 7, 35, + 67, 128, 68, 12, 5, 73, 128, 65, 66, 72, + 137, 574, 3, 67, 107, 137, 21, 75, 145, 59, + 173, 160, 65, 145, 63, 152, 60, 67, 51, 63, + 152, 67, 75, 160, 73, 74, 62, 75, 160, 73, + 74, 24, 68, 63, 114, 115, 116, 256, 175, 439, + 425, 136, 427, 175, 62, 390, 173, 142, 128, 68, + 83, 200, 3, 398, 65, 49, 89, 137, 389, 3, + 391, 62, 63, 200, 75, 145, 342, 68, 200, 159, + 160, 644, 152, 24, 350, 24, 24, 606, 383, 599, + 24, 7, 66, 598, 62, 60, 12, 224, 72, 226, + 610, 611, 224, 7, 226, 175, 438, 24, 12, 50, + 75, 517, 3, 62, 53, 242, 221, 244, 524, 68, + 242, 59, 244, 250, 3, 59, 71, 462, 250, 63, + 414, 62, 73, 74, 67, 73, 74, 421, 3, 73, + 74, 473, 59, 127, 66, 272, 62, 652, 433, 654, + 272, 66, 68, 59, 224, 24, 226, 284, 284, 24, + 287, 288, 284, 284, 68, 287, 288, 369, 369, 318, + 505, 24, 242, 59, 244, 441, 385, 379, 379, 318, + 250, 447, 448, 478, 450, 50, 400, 402, 59, 520, + 59, 318, 24, 459, 59, 461, 318, 40, 35, 68, + 53, 44, 272, 24, 73, 74, 59, 665, 73, 74, + 62, 74, 62, 64, 284, 68, 68, 287, 288, 59, + 73, 74, 59, 24, 208, 209, 561, 633, 24, 40, + 67, 59, 63, 44, 361, 35, 375, 67, 24, 361, + 75, 73, 74, 578, 579, 577, 373, 9, 375, 375, + 60, 373, 53, 375, 375, 17, 383, 72, 59, 21, + 387, 383, 59, 59, 417, 387, 35, 72, 603, 31, + 32, 59, 73, 74, 60, 63, 571, 73, 74, 428, + 407, 408, 3, 71, 550, 407, 408, 73, 74, 428, + 59, 361, 558, 24, 35, 35, 60, 281, 67, 35, + 385, 428, 64, 373, 588, 375, 428, 291, 393, 594, + 8, 60, 397, 383, 62, 35, 35, 387, 59, 59, + 75, 94, 95, 59, 97, 98, 67, 67, 59, 62, + 60, 67, 471, 24, 59, 601, 602, 407, 408, 59, + 5, 65, 73, 74, 471, 471, 24, 67, 487, 471, + 471, 478, 62, 62, 24, 20, 478, 22, 497, 72, + 487, 487, 24, 28, 24, 487, 487, 569, 569, 3, + 497, 36, 3, 62, 39, 497, 62, 8, 43, 62, + 45, 59, 67, 367, 368, 65, 17, 66, 53, 54, + 60, 22, 23, 24, 521, 73, 74, 59, 29, 521, + 60, 471, 67, 73, 74, 34, 24, 95, 478, 97, + 98, 73, 74, 73, 74, 44, 59, 487, 67, 48, + 71, 67, 406, 8, 53, 54, 55, 56, 59, 65, + 62, 584, 62, 60, 664, 574, 420, 62, 62, 212, + 71, 59, 73, 74, 571, 218, 219, 574, 574, 571, + 60, 521, 574, 574, 60, 73, 74, 60, 63, 68, + 60, 68, 664, 128, 35, 60, 60, 60, 60, 68, + 60, 136, 60, 75, 75, 624, 60, 142, 3, 144, + 36, 68, 62, 148, 60, 624, 72, 62, 60, 59, + 59, 49, 75, 66, 60, 60, 60, 624, 8, 62, + 60, 571, 624, 61, 574, 644, 64, 17, 173, 60, + 60, 59, 22, 23, 24, 59, 68, 644, 644, 29, + 62, 49, 644, 644, 62, 72, 36, 68, 62, 59, + 8, 60, 68, 60, 60, 68, 201, 14, 62, 17, + 72, 60, 207, 53, 22, 23, 24, 60, 213, 59, + 68, 29, 60, 60, 22, 65, 221, 31, 36, 224, + 584, 71, 335, 73, 74, 75, 645, 510, 526, 342, + 235, 526, 244, 39, 644, 53, 282, 350, 244, 160, + 393, 59, 385, 373, 22, 250, 251, 65, 214, 497, + 335, 335, 464, 71, 34, 73, 74, 75, 38, 39, + 40, 442, 605, 43, 44, 45, 46, 601, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 282, 176, 177, + 178, 179, 460, 181, 182, 183, -1, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, -1, 200, -1, 202, 213, 204, -1, -1, -1, + 208, 209, 210, -1, -1, -1, -1, 322, -1, -1, + 114, 115, 116, -1, -1, -1, -1, -1, 441, -1, + -1, -1, -1, -1, 447, 448, -1, 450, 343, -1, + -1, 8, -1, 137, -1, 8, 459, -1, 461, 354, + 17, 145, -1, -1, 17, 22, 23, 24, 152, 22, + 23, 24, 29, -1, -1, -1, 29, -1, 373, 36, + 375, -1, -1, 36, -1, 380, -1, -1, 383, -1, + 385, 175, -1, 281, -1, -1, 53, -1, 393, -1, + 53, -1, 397, 291, -1, 400, 59, 402, 65, -1, + -1, -1, -1, -1, 71, -1, -1, 74, 71, -1, + 73, 74, 417, -1, -1, -1, 314, -1, -1, -1, + 318, -1, -1, -1, -1, -1, 324, -1, -1, -1, + -1, -1, 226, 438, 439, -1, -1, 550, -1, -1, + -1, 446, 447, -1, 449, 558, -1, -1, 242, 454, + -1, -1, 565, -1, -1, 460, -1, -1, 463, 464, + -1, -1, -1, -1, -1, -1, -1, -1, 473, 367, + 368, -1, -1, 478, -1, -1, -1, -1, 272, -1, + -1, 34, -1, -1, -1, 598, -1, -1, 601, 602, + 284, 44, -1, 287, 288, 48, 49, 50, 51, 52, + 53, 54, 55, 56, -1, -1, -1, -1, 406, -1, + -1, -1, -1, 4, 5, -1, -1, -1, -1, -1, + -1, -1, 420, -1, -1, -1, -1, -1, -1, -1, + 428, -1, -1, -1, -1, 433, -1, -1, -1, 652, + -1, 654, 33, 34, -1, 36, 37, 38, 39, 40, + -1, 42, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 56, 571, 361, -1, -1, + -1, -1, 577, -1, 65, -1, 474, 475, -1, 584, + -1, -1, -1, -1, 75, -1, -1, -1, -1, -1, + -1, -1, -1, 387, 599, -1, 601, -1, -1, 497, + 605, 606, -1, -1, -1, 610, 611, -1, -1, -1, + -1, -1, -1, 407, 408, -1, -1, -1, -1, 517, + -1, -1, -1, -1, -1, -1, 524, 525, 526, 0, + 1, -1, 3, -1, -1, 6, -1, 8, 9, 10, + -1, -1, 13, -1, 15, 16, 17, 18, 19, 20, + -1, 22, 23, 24, -1, -1, 27, 28, 29, 30, + 31, 32, -1, -1, -1, 36, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 49, 50, -1, 52, 53, -1, -1, 56, -1, -1, 59, -1, - -1, 62, -1, -1, -1, -1, -1, -1, 69, 70, - 71, -1, 73, 74, -1, -1, -1, -1, 473, 474, - -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, - 3, -1, -1, 6, 7, 8, 9, 10, -1, 12, - 13, 496, 15, 16, 17, 18, 19, 20, -1, 22, - 23, 24, -1, -1, 27, 28, 29, 30, 31, 32, - -1, 516, -1, 36, -1, -1, -1, -1, 523, 524, - 525, -1, -1, -1, -1, -1, 49, 50, -1, 52, - 53, -1, -1, 56, -1, -1, 59, -1, -1, 62, - -1, -1, -1, -1, 67, 68, 69, 70, 71, -1, - 73, 74, 1, -1, 3, -1, -1, 6, -1, 8, - 9, 10, -1, -1, 13, -1, 15, 16, 17, 18, - 19, 20, -1, 22, 23, 24, 34, -1, 27, 28, - 29, 30, 31, 32, -1, -1, 44, 36, -1, -1, - 48, 49, 50, 51, 52, 53, 54, 55, 56, -1, - 49, 50, -1, 52, 53, -1, -1, 56, -1, -1, - 59, -1, -1, 62, 619, 620, -1, 622, 67, 68, - 69, 70, 71, 3, 73, 74, 631, -1, 8, -1, - -1, -1, -1, -1, -1, -1, -1, 17, -1, 8, - -1, -1, 22, 23, 24, -1, -1, -1, 17, 29, - -1, -1, -1, 22, 23, 24, 36, -1, -1, -1, - 29, -1, -1, -1, -1, -1, -1, 36, -1, 49, - 50, -1, 52, 53, -1, -1, 56, -1, 3, 59, - 60, -1, -1, 8, 53, -1, -1, -1, -1, 69, - 70, 71, 17, 73, 74, -1, -1, 22, 23, 24, - -1, -1, 71, -1, 29, 74, -1, -1, -1, -1, + -1, 62, -1, -1, -1, -1, 594, -1, 69, 70, + 71, -1, 73, 74, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 621, 622, -1, 624, 521, -1, -1, + -1, 1, -1, 3, -1, 633, 6, 7, 8, 9, + 10, -1, 12, 13, -1, 15, 16, 17, 18, 19, + 20, -1, 22, 23, 24, -1, -1, 27, 28, 29, + 30, 31, 32, -1, -1, -1, 36, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 49, + 50, -1, 52, 53, -1, -1, 56, -1, -1, 59, + -1, -1, 62, -1, -1, -1, -1, 67, 68, 69, + 70, 71, -1, 73, 74, 1, -1, 3, -1, -1, + 6, -1, 8, 9, 10, -1, -1, 13, -1, 15, + 16, 17, 18, 19, 20, -1, 22, 23, 24, -1, + -1, 27, 28, 29, 30, 31, 32, -1, -1, -1, + 36, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 49, 50, -1, 52, 53, -1, -1, + 56, -1, 3, 59, -1, -1, 62, 8, -1, -1, + 11, 67, 68, 69, 70, 71, 17, 73, 74, -1, + -1, 22, 23, 24, -1, -1, -1, -1, 29, -1, + -1, -1, -1, -1, -1, 36, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 3, -1, -1, 49, 50, + 8, 52, 53, -1, -1, 56, -1, -1, 59, 17, + -1, -1, -1, -1, 22, 23, 24, -1, 69, 70, + 71, 29, 73, 74, -1, -1, -1, -1, 36, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 49, 50, -1, 52, 53, -1, -1, 56, -1, + 3, 59, 60, -1, -1, 8, -1, -1, -1, -1, + -1, 69, 70, 71, 17, 73, 74, -1, -1, 22, + 23, 24, -1, -1, -1, -1, 29, -1, -1, -1, + -1, -1, -1, 36, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 49, 50, -1, 52, + 53, -1, -1, 56, -1, 3, 59, -1, -1, -1, + 8, -1, -1, -1, 67, -1, 69, 70, 71, 17, + 73, 74, -1, -1, 22, 23, 24, -1, -1, -1, + -1, 29, -1, 31, -1, -1, -1, -1, 36, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 49, 50, -1, 52, 53, -1, -1, 56, -1, + 3, 59, -1, -1, -1, 8, -1, -1, -1, -1, + -1, 69, 70, 71, 17, 73, 74, -1, -1, 22, + 23, 24, -1, 26, -1, -1, 29, -1, -1, -1, + -1, -1, -1, 36, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 49, 50, -1, 52, + 53, -1, -1, 56, -1, 3, 59, -1, -1, -1, + 8, -1, -1, -1, -1, -1, 69, 70, 71, 17, + 73, 74, -1, -1, 22, 23, 24, -1, 26, -1, + -1, 29, -1, -1, -1, -1, -1, -1, 36, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 3, -1, + -1, 49, 50, 8, 52, 53, -1, -1, 56, -1, + -1, 59, 17, -1, -1, -1, -1, 22, 23, 24, + -1, 69, 70, 71, 29, 73, 74, -1, -1, -1, -1, 36, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 49, 50, -1, 52, 53, -1, -1, 56, -1, 3, 59, -1, -1, -1, 8, -1, -1, -1, 67, -1, 69, 70, 71, 17, 73, 74, -1, -1, 22, 23, 24, -1, -1, -1, -1, 29, - -1, 31, -1, -1, -1, -1, 36, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 49, - 50, -1, 52, 53, -1, -1, 56, -1, 3, 59, - -1, -1, -1, 8, -1, -1, -1, -1, -1, 69, - 70, 71, 17, 73, 74, -1, -1, 22, 23, 24, - -1, 26, -1, -1, 29, -1, -1, -1, -1, -1, - -1, 36, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 49, 50, -1, 52, 53, -1, - -1, 56, -1, 3, 59, -1, -1, -1, 8, -1, - -1, -1, -1, -1, 69, 70, 71, 17, 73, 74, - -1, -1, 22, 23, 24, -1, 26, -1, -1, 29, -1, -1, -1, -1, -1, -1, 36, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, -1, -1, 49, 50, 8, 52, 53, -1, -1, 56, -1, -1, 59, 17, -1, -1, -1, -1, 22, 23, 24, -1, 69, 70, 71, 29, 73, 74, -1, -1, -1, -1, 36, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 49, 50, -1, 52, 53, -1, -1, 56, - -1, 3, 59, -1, -1, -1, 8, -1, -1, -1, - 67, -1, 69, 70, 71, 17, 73, 74, -1, -1, - 22, 23, 24, -1, -1, -1, -1, 29, -1, -1, - -1, -1, -1, -1, 36, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 3, -1, -1, 49, 50, 8, - 52, 53, -1, -1, 56, -1, -1, 59, 17, -1, - -1, -1, -1, 22, 23, 24, -1, 69, 70, 71, - 29, 73, 74, -1, -1, -1, -1, 36, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 3, -1, -1, - 49, 50, 8, 52, 53, -1, -1, 56, -1, -1, - 59, 17, -1, -1, -1, -1, 22, 23, 24, -1, - 69, 70, 71, 29, 73, 74, -1, -1, -1, -1, - 36, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 49, 50, 8, 52, 53, -1, -1, - 56, -1, -1, 59, 17, -1, -1, -1, -1, 22, - 23, 24, -1, 69, 70, 71, 29, 73, 74, -1, - 8, -1, -1, 36, -1, -1, -1, -1, 8, 17, - -1, -1, -1, -1, 22, 23, 24, 17, -1, -1, - 53, 29, 22, 23, 24, -1, 59, -1, 36, 29, - -1, -1, -1, -1, 8, -1, 36, -1, 71, -1, - 73, 74, 75, 17, -1, 53, -1, -1, 22, 23, - 24, 59, -1, 53, -1, 29, -1, -1, -1, 59, - -1, 8, 36, 71, -1, 73, 74, -1, -1, -1, - 17, 71, -1, 73, 74, 22, 23, 24, -1, 53, - -1, -1, 29, -1, -1, 59, -1, 8, -1, 36, - -1, -1, -1, -1, -1, 8, 17, 71, -1, 73, - 74, 22, 23, 24, 17, -1, 53, -1, 29, 22, - 23, 24, 59, -1, -1, 36, 29, -1, -1, -1, - 8, -1, -1, 36, 71, -1, 73, 74, 8, 17, - -1, 11, 53, -1, 22, 23, 24, 17, 59, -1, - 53, 29, 22, 23, 24, -1, 59, -1, 36, 29, - 71, -1, 73, 74, 8, -1, 36, -1, 71, -1, - -1, 74, -1, 17, -1, 53, -1, -1, 22, 23, - 24, -1, -1, 53, -1, 29, -1, -1, -1, -1, - -1, -1, 36, 71, -1, 73, 74, -1, -1, -1, - -1, 71, 34, -1, 74, -1, 38, 39, 40, 53, - -1, 43, 44, 45, 46, 59, 48, 49, 50, 51, - 52, 53, 54, 55, 56, -1, -1, 71, 33, 34, - 74, 36, -1, 38, 39, 40, -1, -1, 43, 44, - 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - 55, 56, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 33, 34, -1, 36, -1, 38, 39, 40, -1, - 75, 43, 44, 45, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 56, -1, -1, -1, -1, -1, - -1, 33, 34, -1, 36, -1, 38, 39, 40, -1, - 72, 43, 44, 45, 46, 47, 48, 49, 50, 51, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, + -1, -1, 49, 50, 8, 52, 53, -1, -1, 56, + -1, -1, 59, 17, -1, -1, -1, -1, 22, 23, + 24, -1, 69, 70, 71, 29, 73, 74, -1, -1, + -1, -1, 36, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 49, 50, 8, 52, 53, + -1, -1, 56, -1, -1, 59, 17, -1, -1, -1, + -1, 22, 23, 24, -1, 69, 70, 71, 29, 73, + 74, -1, -1, 8, -1, 36, 11, -1, -1, -1, + -1, 8, 17, -1, -1, -1, -1, 22, 23, 24, + 17, -1, 53, -1, 29, 22, 23, 24, 59, -1, + -1, 36, 29, -1, -1, -1, 8, -1, -1, 36, + 71, -1, 73, 74, 75, 17, -1, -1, 53, -1, + 22, 23, 24, -1, 59, -1, 53, 29, -1, -1, + -1, -1, 59, -1, 36, -1, 71, -1, 73, 74, + 8, -1, -1, -1, 71, -1, 73, 74, -1, 17, + -1, 53, -1, -1, 22, 23, 24, 59, -1, -1, + -1, 29, -1, -1, -1, 8, -1, -1, 36, 71, + -1, 73, 74, 8, 17, -1, -1, -1, -1, 22, + 23, 24, 17, -1, -1, 53, 29, 22, 23, 24, + -1, 59, -1, 36, 29, -1, -1, -1, -1, 8, + -1, 36, 11, 71, -1, 73, 74, -1, 17, -1, + 53, -1, -1, 22, 23, 24, 59, -1, 53, -1, + 29, -1, -1, -1, 59, -1, 8, 36, 71, -1, + 73, 74, -1, -1, -1, 17, 71, -1, -1, 74, + 22, 23, 24, -1, 53, -1, -1, 29, -1, -1, + -1, -1, 8, -1, 36, -1, -1, -1, -1, -1, + 8, 17, 71, -1, -1, 74, 22, 23, 24, 17, + -1, 53, -1, 29, 22, 23, 24, -1, -1, -1, + 36, 29, -1, -1, -1, -1, -1, -1, 36, 71, + -1, 73, 74, -1, -1, -1, -1, 53, -1, -1, + -1, -1, -1, 59, -1, 53, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 71, -1, -1, 74, -1, + -1, -1, -1, 71, 33, 34, 74, 36, -1, 38, + 39, 40, -1, -1, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 33, 34, -1, + 36, -1, 38, 39, 40, -1, 75, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, -1, -1, -1, -1, -1, -1, 33, 34, -1, + 36, -1, 38, 39, 40, -1, 72, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 33, 34, -1, 36, -1, 38, 39, 40, -1, + 66, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 33, 34, -1, 36, -1, 38, 39, 40, -1, 66, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 33, 34, -1, 36, -1, 38, 39, 40, -1, 66, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 55, 56, 33, 34, -1, 36, -1, 38, 39, - 40, -1, 66, 43, 44, 45, 46, 47, 48, 49, + 54, 55, 56, 33, 34, -1, -1, -1, 38, 39, + 40, -1, -1, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 33, 34, -1, -1, -1, 38, 39, 40, -1, -1, 43, 44, 45, - 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, - 56, 33, 34, -1, -1, -1, 38, 39, 40, -1, - -1, 43, 44, 45, 46, -1, 48, 49, 50, 51, - 52, 53, 54, 55, 56 + 46, -1, 48, 49, 50, 51, 52, 53, 54, 55, + 56 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing @@ -1494,63 +1537,63 @@ static const yytype_uint8 yystos[] = 113, 121, 124, 126, 127, 128, 129, 134, 138, 141, 143, 144, 149, 150, 153, 156, 157, 158, 161, 164, 165, 181, 186, 62, 9, 17, 21, 31, 32, 64, - 199, 24, 60, 83, 84, 3, 86, 88, 3, 138, - 140, 141, 17, 36, 53, 59, 141, 143, 148, 152, - 153, 154, 161, 140, 128, 134, 111, 59, 141, 159, - 128, 138, 114, 35, 67, 137, 71, 126, 186, 193, - 125, 137, 122, 59, 96, 97, 141, 59, 93, 139, - 141, 185, 127, 127, 127, 127, 127, 127, 36, 53, - 126, 135, 147, 153, 155, 161, 127, 127, 11, 126, - 192, 62, 59, 94, 185, 4, 33, 34, 36, 37, - 38, 39, 40, 42, 43, 44, 45, 46, 47, 48, - 49, 50, 51, 52, 53, 54, 55, 56, 67, 59, - 63, 71, 66, 59, 137, 1, 137, 5, 65, 75, - 142, 200, 59, 160, 200, 24, 200, 201, 200, 64, - 62, 190, 88, 59, 36, 59, 146, 152, 153, 154, - 155, 161, 146, 146, 63, 98, 107, 108, 109, 186, - 194, 11, 136, 141, 145, 146, 177, 178, 179, 59, - 67, 162, 112, 194, 24, 59, 68, 138, 171, 173, - 175, 146, 35, 53, 59, 68, 138, 170, 172, 173, - 174, 184, 112, 60, 97, 169, 146, 60, 93, 167, - 65, 75, 146, 8, 147, 60, 72, 72, 60, 94, - 65, 146, 126, 126, 126, 126, 126, 126, 126, 126, + 199, 24, 73, 60, 83, 84, 3, 86, 88, 3, + 138, 140, 141, 17, 36, 53, 59, 141, 143, 148, + 152, 153, 154, 161, 140, 128, 134, 111, 59, 141, + 159, 128, 138, 114, 35, 67, 137, 71, 126, 186, + 193, 125, 137, 122, 59, 96, 97, 141, 59, 93, + 139, 141, 185, 127, 127, 127, 127, 127, 127, 36, + 53, 126, 135, 147, 153, 155, 161, 127, 127, 11, + 126, 192, 62, 59, 94, 185, 4, 33, 34, 36, + 37, 38, 39, 40, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 67, + 59, 63, 71, 66, 59, 137, 1, 137, 5, 65, + 75, 142, 200, 59, 160, 200, 24, 200, 201, 200, + 64, 62, 190, 88, 59, 36, 59, 146, 152, 153, + 154, 155, 161, 146, 146, 63, 98, 107, 108, 109, + 186, 194, 11, 136, 141, 145, 146, 177, 178, 179, + 59, 67, 162, 112, 194, 24, 59, 68, 138, 171, + 173, 175, 146, 35, 53, 59, 68, 138, 170, 172, + 173, 174, 184, 112, 60, 97, 169, 146, 60, 93, + 167, 65, 75, 146, 8, 147, 60, 72, 72, 60, + 94, 65, 146, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, - 126, 126, 126, 130, 60, 135, 187, 59, 141, 126, - 192, 182, 126, 130, 1, 67, 91, 100, 180, 181, - 183, 186, 186, 126, 8, 17, 22, 23, 24, 29, - 36, 53, 65, 71, 142, 202, 204, 205, 206, 141, - 207, 215, 162, 59, 3, 202, 202, 83, 60, 179, - 8, 146, 60, 141, 35, 105, 5, 65, 62, 146, - 136, 145, 75, 191, 60, 179, 183, 115, 62, 63, - 24, 173, 59, 176, 62, 190, 72, 104, 59, 174, - 53, 174, 62, 190, 3, 198, 75, 146, 123, 62, - 190, 62, 190, 186, 139, 65, 36, 59, 146, 152, - 153, 154, 161, 67, 146, 146, 62, 190, 186, 65, - 67, 126, 131, 132, 188, 189, 11, 75, 191, 31, - 135, 72, 66, 180, 75, 191, 189, 101, 62, 68, - 36, 59, 203, 204, 206, 59, 67, 71, 67, 8, - 202, 3, 50, 59, 141, 212, 213, 3, 72, 65, - 11, 202, 60, 75, 62, 195, 215, 62, 62, 62, - 60, 60, 106, 26, 26, 194, 177, 59, 141, 151, - 152, 153, 154, 155, 161, 163, 60, 68, 105, 194, - 141, 60, 179, 175, 68, 146, 7, 12, 68, 99, - 102, 174, 198, 174, 60, 172, 68, 138, 198, 35, - 97, 60, 93, 60, 186, 146, 130, 94, 95, 168, - 185, 60, 186, 130, 66, 75, 191, 68, 191, 135, - 60, 60, 60, 192, 60, 68, 183, 180, 202, 205, - 195, 24, 141, 142, 197, 202, 209, 217, 202, 141, - 196, 208, 216, 202, 3, 212, 62, 72, 202, 213, - 202, 198, 141, 207, 60, 183, 126, 126, 62, 179, - 59, 163, 116, 60, 187, 66, 103, 60, 60, 198, - 104, 60, 189, 62, 190, 146, 189, 67, 126, 133, - 131, 132, 60, 72, 68, 60, 60, 59, 68, 62, - 72, 202, 68, 62, 49, 202, 62, 198, 59, 59, - 202, 210, 211, 68, 194, 60, 179, 119, 163, 5, - 65, 66, 75, 183, 198, 198, 68, 68, 95, 60, - 68, 130, 210, 195, 209, 202, 198, 208, 212, 195, - 195, 60, 14, 117, 120, 126, 126, 189, 60, 60, - 60, 60, 163, 20, 100, 66, 66, 68, 210, 210, - 118, 112, 105 + 126, 126, 126, 126, 130, 60, 135, 187, 59, 141, + 126, 192, 182, 126, 130, 1, 67, 91, 100, 180, + 181, 183, 186, 186, 126, 8, 17, 22, 23, 24, + 29, 36, 53, 65, 71, 142, 202, 204, 205, 206, + 141, 207, 215, 162, 59, 3, 202, 202, 83, 60, + 179, 8, 146, 60, 141, 35, 105, 5, 65, 62, + 146, 136, 145, 75, 191, 60, 179, 183, 115, 62, + 63, 24, 173, 59, 176, 62, 190, 72, 104, 59, + 174, 53, 174, 62, 190, 3, 198, 75, 146, 123, + 62, 190, 62, 190, 186, 139, 65, 36, 59, 146, + 152, 153, 154, 161, 67, 146, 146, 62, 190, 186, + 65, 67, 126, 131, 132, 188, 189, 11, 75, 191, + 31, 135, 72, 66, 180, 75, 191, 189, 101, 62, + 68, 36, 59, 203, 204, 206, 59, 67, 71, 67, + 8, 202, 3, 50, 59, 141, 212, 213, 3, 72, + 65, 11, 202, 60, 75, 62, 195, 215, 62, 62, + 62, 60, 60, 106, 26, 26, 194, 177, 59, 141, + 151, 152, 153, 154, 155, 161, 163, 60, 68, 105, + 194, 141, 60, 179, 175, 68, 146, 7, 12, 68, + 99, 102, 174, 198, 174, 60, 172, 68, 138, 198, + 35, 97, 60, 93, 60, 186, 146, 130, 94, 95, + 168, 185, 60, 186, 130, 66, 75, 191, 68, 191, + 135, 60, 60, 60, 192, 60, 68, 183, 180, 202, + 205, 195, 24, 141, 142, 197, 202, 209, 217, 202, + 141, 196, 208, 216, 202, 3, 212, 62, 72, 202, + 213, 202, 198, 141, 207, 60, 183, 126, 126, 62, + 179, 59, 163, 116, 60, 187, 66, 103, 60, 60, + 198, 104, 60, 189, 62, 190, 146, 189, 67, 126, + 133, 131, 132, 60, 66, 72, 68, 60, 60, 59, + 68, 62, 72, 202, 68, 62, 49, 202, 62, 198, + 59, 59, 202, 210, 211, 68, 194, 60, 179, 119, + 163, 5, 65, 66, 75, 183, 198, 198, 68, 68, + 95, 60, 68, 130, 192, 210, 195, 209, 202, 198, + 208, 212, 195, 195, 60, 14, 117, 120, 126, 126, + 189, 72, 60, 60, 60, 60, 163, 20, 100, 66, + 66, 68, 210, 210, 118, 112, 105 }; #define yyerrok (yyerrstatus = 0) @@ -1565,9 +1608,18 @@ static const yytype_uint8 yystos[] = /* Like YYERROR except do call yyerror. This remains here temporarily to ease the transition to the new meaning of YYERROR, for GCC. - Once GCC version 2 has supplanted version 1, this can go. */ + Once GCC version 2 has supplanted version 1, this can go. However, + YYFAIL appears to be in use. Nevertheless, it is formally deprecated + in Bison 2.4.2's NEWS entry, where a plan to phase it out is + discussed. */ #define YYFAIL goto yyerrlab +#if defined YYFAIL + /* This is here to suppress warnings from the GCC cpp's + -Wunused-macros. Normally we don't worry about that warning, but + some users do, and we want to make it easy for users to remove + YYFAIL uses, which will produce warnings from Bison 2.5. */ +#endif #define YYRECOVERING() (!!yyerrstatus) @@ -1577,7 +1629,6 @@ do \ { \ yychar = (Token); \ yylval = (Value); \ - yytoken = YYTRANSLATE (yychar); \ YYPOPSTACK (1); \ goto yybackup; \ } \ @@ -1619,19 +1670,10 @@ while (YYID (0)) #endif -/* YY_LOCATION_PRINT -- Print the location on the stream. - This macro was not mandated originally: define only if we know - we won't break user code: when these are the locations we know. */ +/* This macro is provided for backward compatibility. */ #ifndef YY_LOCATION_PRINT -# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL -# define YY_LOCATION_PRINT(File, Loc) \ - fprintf (File, "%d.%d-%d.%d", \ - (Loc).first_line, (Loc).first_column, \ - (Loc).last_line, (Loc).last_column) -# else -# define YY_LOCATION_PRINT(File, Loc) ((void) 0) -# endif +# define YY_LOCATION_PRINT(File, Loc) ((void) 0) #endif @@ -1735,17 +1777,20 @@ yy_symbol_print (yyoutput, yytype, yyvaluep) #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) static void -yy_stack_print (yytype_int16 *bottom, yytype_int16 *top) +yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) #else static void -yy_stack_print (bottom, top) - yytype_int16 *bottom; - yytype_int16 *top; +yy_stack_print (yybottom, yytop) + yytype_int16 *yybottom; + yytype_int16 *yytop; #endif { YYFPRINTF (stderr, "Stack now"); - for (; bottom <= top; ++bottom) - YYFPRINTF (stderr, " %d", *bottom); + for (; yybottom <= yytop; yybottom++) + { + int yybot = *yybottom; + YYFPRINTF (stderr, " %d", yybot); + } YYFPRINTF (stderr, "\n"); } @@ -1779,11 +1824,11 @@ yy_reduce_print (yyvsp, yyrule) /* The symbols being reduced. */ for (yyi = 0; yyi < yynrhs; yyi++) { - fprintf (stderr, " $%d = ", yyi + 1); + YYFPRINTF (stderr, " $%d = ", yyi + 1); yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi], &(yyvsp[(yyi + 1) - (yynrhs)]) ); - fprintf (stderr, "\n"); + YYFPRINTF (stderr, "\n"); } } @@ -1820,7 +1865,6 @@ int yydebug; # define YYMAXDEPTH 10000 #endif - #if YYERROR_VERBOSE @@ -1923,115 +1967,142 @@ yytnamerr (char *yyres, const char *yystr) } # endif -/* Copy into YYRESULT an error message about the unexpected token - YYCHAR while in state YYSTATE. Return the number of bytes copied, - including the terminating null byte. If YYRESULT is null, do not - copy anything; just return the number of bytes that would be - copied. As a special case, return 0 if an ordinary "syntax error" - message will do. Return YYSIZE_MAXIMUM if overflow occurs during - size calculation. */ -static YYSIZE_T -yysyntax_error (char *yyresult, int yystate, int yychar) -{ - int yyn = yypact[yystate]; +/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message + about the unexpected token YYTOKEN for the state stack whose top is + YYSSP. - if (! (YYPACT_NINF < yyn && yyn <= YYLAST)) - return 0; - else - { - int yytype = YYTRANSLATE (yychar); - YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]); - YYSIZE_T yysize = yysize0; - YYSIZE_T yysize1; - int yysize_overflow = 0; - enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; - char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; - int yyx; - -# if 0 - /* This is so xgettext sees the translatable formats that are - constructed on the fly. */ - YY_("syntax error, unexpected %s"); - YY_("syntax error, unexpected %s, expecting %s"); - YY_("syntax error, unexpected %s, expecting %s or %s"); - YY_("syntax error, unexpected %s, expecting %s or %s or %s"); - YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"); -# endif - char *yyfmt; - char const *yyf; - static char const yyunexpected[] = "syntax error, unexpected %s"; - static char const yyexpecting[] = ", expecting %s"; - static char const yyor[] = " or %s"; - char yyformat[sizeof yyunexpected - + sizeof yyexpecting - 1 - + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2) - * (sizeof yyor - 1))]; - char const *yyprefix = yyexpecting; - - /* Start YYX at -YYN if negative to avoid negative indexes in - YYCHECK. */ - int yyxbegin = yyn < 0 ? -yyn : 0; - - /* Stay within bounds of both yycheck and yytname. */ - int yychecklim = YYLAST - yyn + 1; - int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; - int yycount = 1; - - yyarg[0] = yytname[yytype]; - yyfmt = yystpcpy (yyformat, yyunexpected); - - for (yyx = yyxbegin; yyx < yyxend; ++yyx) - if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) - { - if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) - { - yycount = 1; - yysize = yysize0; - yyformat[sizeof yyunexpected - 1] = '\0'; - break; - } - yyarg[yycount++] = yytname[yyx]; - yysize1 = yysize + yytnamerr (0, yytname[yyx]); - yysize_overflow |= (yysize1 < yysize); - yysize = yysize1; - yyfmt = yystpcpy (yyfmt, yyprefix); - yyprefix = yyor; - } + Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is + not large enough to hold the message. In that case, also set + *YYMSG_ALLOC to the required number of bytes. Return 2 if the + required number of bytes is too large to store. */ +static int +yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, + yytype_int16 *yyssp, int yytoken) +{ + YYSIZE_T yysize0 = yytnamerr (0, yytname[yytoken]); + YYSIZE_T yysize = yysize0; + YYSIZE_T yysize1; + enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; + /* Internationalized format string. */ + const char *yyformat = 0; + /* Arguments of yyformat. */ + char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; + /* Number of reported tokens (one for the "unexpected", one per + "expected"). */ + int yycount = 0; + + /* There are many possibilities here to consider: + - Assume YYFAIL is not used. It's too flawed to consider. See + <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html> + for details. YYERROR is fine as it does not invoke this + function. + - If this state is a consistent state with a default action, then + the only way this function was invoked is if the default action + is an error action. In that case, don't check for expected + tokens because there are none. + - The only way there can be no lookahead present (in yychar) is if + this state is a consistent state with a default action. Thus, + detecting the absence of a lookahead is sufficient to determine + that there is no unexpected or expected token to report. In that + case, just report a simple "syntax error". + - Don't assume there isn't a lookahead just because this state is a + consistent state with a default action. There might have been a + previous inconsistent state, consistent state with a non-default + action, or user semantic action that manipulated yychar. + - Of course, the expected token list depends on states to have + correct lookahead information, and it depends on the parser not + to perform extra reductions after fetching a lookahead from the + scanner and before detecting a syntax error. Thus, state merging + (from LALR or IELR) and default reductions corrupt the expected + token list. However, the list is correct for canonical LR with + one exception: it will still contain any token that will not be + accepted due to an error action in a later state. + */ + if (yytoken != YYEMPTY) + { + int yyn = yypact[*yyssp]; + yyarg[yycount++] = yytname[yytoken]; + if (!yypact_value_is_default (yyn)) + { + /* Start YYX at -YYN if negative to avoid negative indexes in + YYCHECK. In other words, skip the first -YYN actions for + this state because they are default actions. */ + int yyxbegin = yyn < 0 ? -yyn : 0; + /* Stay within bounds of both yycheck and yytname. */ + int yychecklim = YYLAST - yyn + 1; + int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; + int yyx; + + for (yyx = yyxbegin; yyx < yyxend; ++yyx) + if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR + && !yytable_value_is_error (yytable[yyx + yyn])) + { + if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) + { + yycount = 1; + yysize = yysize0; + break; + } + yyarg[yycount++] = yytname[yyx]; + yysize1 = yysize + yytnamerr (0, yytname[yyx]); + if (! (yysize <= yysize1 + && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) + return 2; + yysize = yysize1; + } + } + } - yyf = YY_(yyformat); - yysize1 = yysize + yystrlen (yyf); - yysize_overflow |= (yysize1 < yysize); - yysize = yysize1; + switch (yycount) + { +# define YYCASE_(N, S) \ + case N: \ + yyformat = S; \ + break + YYCASE_(0, YY_("syntax error")); + YYCASE_(1, YY_("syntax error, unexpected %s")); + YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s")); + YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s")); + YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s")); + YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s")); +# undef YYCASE_ + } - if (yysize_overflow) - return YYSIZE_MAXIMUM; + yysize1 = yysize + yystrlen (yyformat); + if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) + return 2; + yysize = yysize1; - if (yyresult) - { - /* Avoid sprintf, as that infringes on the user's name space. - Don't have undefined behavior even if the translation - produced a string with the wrong number of "%s"s. */ - char *yyp = yyresult; - int yyi = 0; - while ((*yyp = *yyf) != '\0') - { - if (*yyp == '%' && yyf[1] == 's' && yyi < yycount) - { - yyp += yytnamerr (yyp, yyarg[yyi++]); - yyf += 2; - } - else - { - yyp++; - yyf++; - } - } - } - return yysize; + if (*yymsg_alloc < yysize) + { + *yymsg_alloc = 2 * yysize; + if (! (yysize <= *yymsg_alloc + && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM)) + *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM; + return 1; } + + /* Avoid sprintf, as that infringes on the user's name space. + Don't have undefined behavior even if the translation + produced a string with the wrong number of "%s"s. */ + { + char *yyp = *yymsg; + int yyi = 0; + while ((*yyp = *yyformat) != '\0') + if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount) + { + yyp += yytnamerr (yyp, yyarg[yyi++]); + yyformat += 2; + } + else + { + yyp++; + yyformat++; + } + } + return 0; } #endif /* YYERROR_VERBOSE */ - /*-----------------------------------------------. | Release the memory associated to this symbol. | @@ -2063,10 +2134,9 @@ yydestruct (yymsg, yytype, yyvaluep) break; } } - -/* Prevent warnings from -Wmissing-prototypes. */ +/* Prevent warnings from -Wmissing-prototypes. */ #ifdef YYPARSE_PARAM #if defined __STDC__ || defined __cplusplus int yyparse (void *YYPARSE_PARAM); @@ -2082,18 +2152,16 @@ int yyparse (); #endif /* ! YYPARSE_PARAM */ - -/* The look-ahead symbol. */ +/* The lookahead symbol. */ int yychar, yystate; -/* The semantic value of the look-ahead symbol. */ +/* The semantic value of the lookahead symbol. */ YYSTYPE yylval; /* Number of syntax errors so far. */ int yynerrs; - /*----------. | yyparse. | `----------*/ @@ -2120,65 +2188,65 @@ yyparse () #endif #endif { - - int yyn; - int yyresult; - /* Number of tokens to shift before error messages enabled. */ - int yyerrstatus; - /* Look-ahead token as an internal (translated) token number. */ - int yytoken = 0; -#if YYERROR_VERBOSE - /* Buffer for error messages, and its allocated size. */ - char yymsgbuf[128]; - char *yymsg = yymsgbuf; - YYSIZE_T yymsg_alloc = sizeof yymsgbuf; -#endif - - /* Three stacks and their tools: - `yyss': related to states, - `yyvs': related to semantic values, - `yyls': related to locations. + /* Number of tokens to shift before error messages enabled. */ + int yyerrstatus; - Refer to the stacks thru separate pointers, to allow yyoverflow - to reallocate them elsewhere. */ + /* The stacks and their tools: + `yyss': related to states. + `yyvs': related to semantic values. - /* The state stack. */ - yytype_int16 yyssa[YYINITDEPTH]; - yytype_int16 *yyss = yyssa; - yytype_int16 *yyssp; + Refer to the stacks thru separate pointers, to allow yyoverflow + to reallocate them elsewhere. */ - /* The semantic value stack. */ - YYSTYPE yyvsa[YYINITDEPTH]; - YYSTYPE *yyvs = yyvsa; - YYSTYPE *yyvsp; + /* The state stack. */ + yytype_int16 yyssa[YYINITDEPTH]; + yytype_int16 *yyss; + yytype_int16 *yyssp; + /* The semantic value stack. */ + YYSTYPE yyvsa[YYINITDEPTH]; + YYSTYPE *yyvs; + YYSTYPE *yyvsp; + YYSIZE_T yystacksize; -#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) - - YYSIZE_T yystacksize = YYINITDEPTH; - + int yyn; + int yyresult; + /* Lookahead token as an internal (translated) token number. */ + int yytoken; /* The variables used to return semantic value and location from the action routines. */ YYSTYPE yyval; +#if YYERROR_VERBOSE + /* Buffer for error messages, and its allocated size. */ + char yymsgbuf[128]; + char *yymsg = yymsgbuf; + YYSIZE_T yymsg_alloc = sizeof yymsgbuf; +#endif + +#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) /* The number of symbols on the RHS of the reduced rule. Keep to zero when no symbol should be popped. */ int yylen = 0; + yytoken = 0; + yyss = yyssa; + yyvs = yyvsa; + yystacksize = YYINITDEPTH; + YYDPRINTF ((stderr, "Starting parse\n")); yystate = 0; yyerrstatus = 0; yynerrs = 0; - yychar = YYEMPTY; /* Cause a token to be read. */ + yychar = YYEMPTY; /* Cause a token to be read. */ /* Initialize stack pointers. Waste one element of value and location stack so that they stay on the same level as the state stack. The wasted elements are never initialized. */ - yyssp = yyss; yyvsp = yyvs; @@ -2208,7 +2276,6 @@ yyparse () YYSTYPE *yyvs1 = yyvs; yytype_int16 *yyss1 = yyss; - /* Each stack pointer address is followed by the size of the data in use in that stack, in bytes. This used to be a conditional around just the two extra args, but that might @@ -2216,7 +2283,6 @@ yyparse () yyoverflow (YY_("memory exhausted"), &yyss1, yysize * sizeof (*yyssp), &yyvs1, yysize * sizeof (*yyvsp), - &yystacksize); yyss = yyss1; @@ -2239,9 +2305,8 @@ yyparse () (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); if (! yyptr) goto yyexhaustedlab; - YYSTACK_RELOCATE (yyss); - YYSTACK_RELOCATE (yyvs); - + YYSTACK_RELOCATE (yyss_alloc, yyss); + YYSTACK_RELOCATE (yyvs_alloc, yyvs); # undef YYSTACK_RELOCATE if (yyss1 != yyssa) YYSTACK_FREE (yyss1); @@ -2252,7 +2317,6 @@ yyparse () yyssp = yyss + yysize - 1; yyvsp = yyvs + yysize - 1; - YYDPRINTF ((stderr, "Stack size increased to %lu\n", (unsigned long int) yystacksize)); @@ -2262,6 +2326,9 @@ yyparse () YYDPRINTF ((stderr, "Entering state %d\n", yystate)); + if (yystate == YYFINAL) + YYACCEPT; + goto yybackup; /*-----------. @@ -2270,16 +2337,16 @@ yyparse () yybackup: /* Do appropriate processing given the current state. Read a - look-ahead token if we need one and don't already have one. */ + lookahead token if we need one and don't already have one. */ - /* First try to decide what to do without reference to look-ahead token. */ + /* First try to decide what to do without reference to lookahead token. */ yyn = yypact[yystate]; - if (yyn == YYPACT_NINF) + if (yypact_value_is_default (yyn)) goto yydefault; - /* Not known => get a look-ahead token if don't already have one. */ + /* Not known => get a lookahead token if don't already have one. */ - /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */ + /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */ if (yychar == YYEMPTY) { YYDPRINTF ((stderr, "Reading a token: ")); @@ -2305,26 +2372,22 @@ yybackup: yyn = yytable[yyn]; if (yyn <= 0) { - if (yyn == 0 || yyn == YYTABLE_NINF) - goto yyerrlab; + if (yytable_value_is_error (yyn)) + goto yyerrlab; yyn = -yyn; goto yyreduce; } - if (yyn == YYFINAL) - YYACCEPT; - /* Count tokens shifted since error; after three, turn off error status. */ if (yyerrstatus) yyerrstatus--; - /* Shift the look-ahead token. */ + /* Shift the lookahead token. */ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); - /* Discard the shifted token unless it is eof. */ - if (yychar != YYEOF) - yychar = YYEMPTY; + /* Discard the shifted token. */ + yychar = YYEMPTY; yystate = yyn; *++yyvsp = yylval; @@ -2364,6 +2427,8 @@ yyreduce: switch (yyn) { case 2: + +/* Line 1806 of yacc.c */ #line 128 "go.y" { xtop = concat(xtop, (yyvsp[(4) - (4)].list)); @@ -2371,24 +2436,29 @@ yyreduce: break; case 3: + +/* Line 1806 of yacc.c */ #line 134 "go.y" { prevlineno = lineno; yyerror("package statement must be first"); - flusherrors(); - mkpackage("main"); + errorexit(); } break; case 4: -#line 141 "go.y" + +/* Line 1806 of yacc.c */ +#line 140 "go.y" { mkpackage((yyvsp[(2) - (3)].sym)->name); } break; case 5: -#line 151 "go.y" + +/* Line 1806 of yacc.c */ +#line 150 "go.y" { importpkg = runtimepkg; @@ -2401,14 +2471,18 @@ yyreduce: break; case 6: -#line 162 "go.y" + +/* Line 1806 of yacc.c */ +#line 161 "go.y" { importpkg = nil; } break; case 12: -#line 176 "go.y" + +/* Line 1806 of yacc.c */ +#line 175 "go.y" { Pkg *ipkg; Sym *my; @@ -2431,6 +2505,10 @@ yyreduce: importdot(ipkg, pack); break; } + if(strcmp(my->name, "init") == 0) { + yyerror("cannot import package as init - init must be a func"); + break; + } if(my->name[0] == '_' && my->name[1] == '\0') break; if(my->def) { @@ -2444,7 +2522,9 @@ yyreduce: break; case 13: -#line 209 "go.y" + +/* Line 1806 of yacc.c */ +#line 212 "go.y" { // When an invalid import path is passed to importfile, // it calls yyerror and then sets up a fake import with @@ -2456,7 +2536,9 @@ yyreduce: break; case 16: -#line 224 "go.y" + +/* Line 1806 of yacc.c */ +#line 227 "go.y" { // import with original name (yyval.i) = parserline(); @@ -2466,7 +2548,9 @@ yyreduce: break; case 17: -#line 231 "go.y" + +/* Line 1806 of yacc.c */ +#line 234 "go.y" { // import with given name (yyval.i) = parserline(); @@ -2476,7 +2560,9 @@ yyreduce: break; case 18: -#line 238 "go.y" + +/* Line 1806 of yacc.c */ +#line 241 "go.y" { // import into my name space (yyval.i) = parserline(); @@ -2486,7 +2572,9 @@ yyreduce: break; case 19: -#line 247 "go.y" + +/* Line 1806 of yacc.c */ +#line 250 "go.y" { if(importpkg->name == nil) { importpkg->name = (yyvsp[(2) - (4)].sym)->name; @@ -2502,7 +2590,9 @@ yyreduce: break; case 21: -#line 262 "go.y" + +/* Line 1806 of yacc.c */ +#line 265 "go.y" { if(strcmp((yyvsp[(1) - (1)].sym)->name, "safe") == 0) curio.importsafe = 1; @@ -2510,14 +2600,18 @@ yyreduce: break; case 22: -#line 268 "go.y" + +/* Line 1806 of yacc.c */ +#line 271 "go.y" { defercheckwidth(); } break; case 23: -#line 272 "go.y" + +/* Line 1806 of yacc.c */ +#line 275 "go.y" { resumecheckwidth(); unimportfile(); @@ -2525,7 +2619,9 @@ yyreduce: break; case 24: -#line 281 "go.y" + +/* Line 1806 of yacc.c */ +#line 284 "go.y" { yyerror("empty top-level declaration"); (yyval.list) = nil; @@ -2533,14 +2629,18 @@ yyreduce: break; case 26: -#line 287 "go.y" + +/* Line 1806 of yacc.c */ +#line 290 "go.y" { (yyval.list) = list1((yyvsp[(1) - (1)].node)); } break; case 27: -#line 291 "go.y" + +/* Line 1806 of yacc.c */ +#line 294 "go.y" { yyerror("non-declaration statement outside function body"); (yyval.list) = nil; @@ -2548,35 +2648,45 @@ yyreduce: break; case 28: -#line 296 "go.y" + +/* Line 1806 of yacc.c */ +#line 299 "go.y" { (yyval.list) = nil; } break; case 29: -#line 302 "go.y" + +/* Line 1806 of yacc.c */ +#line 305 "go.y" { (yyval.list) = (yyvsp[(2) - (2)].list); } break; case 30: -#line 306 "go.y" + +/* Line 1806 of yacc.c */ +#line 309 "go.y" { (yyval.list) = (yyvsp[(3) - (5)].list); } break; case 31: -#line 310 "go.y" + +/* Line 1806 of yacc.c */ +#line 313 "go.y" { (yyval.list) = nil; } break; case 32: -#line 314 "go.y" + +/* Line 1806 of yacc.c */ +#line 317 "go.y" { (yyval.list) = (yyvsp[(2) - (2)].list); iota = -100000; @@ -2585,7 +2695,9 @@ yyreduce: break; case 33: -#line 320 "go.y" + +/* Line 1806 of yacc.c */ +#line 323 "go.y" { (yyval.list) = (yyvsp[(3) - (5)].list); iota = -100000; @@ -2594,7 +2706,9 @@ yyreduce: break; case 34: -#line 326 "go.y" + +/* Line 1806 of yacc.c */ +#line 329 "go.y" { (yyval.list) = concat((yyvsp[(3) - (7)].list), (yyvsp[(5) - (7)].list)); iota = -100000; @@ -2603,7 +2717,9 @@ yyreduce: break; case 35: -#line 332 "go.y" + +/* Line 1806 of yacc.c */ +#line 335 "go.y" { (yyval.list) = nil; iota = -100000; @@ -2611,84 +2727,108 @@ yyreduce: break; case 36: -#line 337 "go.y" + +/* Line 1806 of yacc.c */ +#line 340 "go.y" { (yyval.list) = list1((yyvsp[(2) - (2)].node)); } break; case 37: -#line 341 "go.y" + +/* Line 1806 of yacc.c */ +#line 344 "go.y" { (yyval.list) = (yyvsp[(3) - (5)].list); } break; case 38: -#line 345 "go.y" + +/* Line 1806 of yacc.c */ +#line 348 "go.y" { (yyval.list) = nil; } break; case 39: -#line 351 "go.y" + +/* Line 1806 of yacc.c */ +#line 354 "go.y" { iota = 0; } break; case 40: -#line 357 "go.y" + +/* Line 1806 of yacc.c */ +#line 360 "go.y" { (yyval.list) = variter((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node), nil); } break; case 41: -#line 361 "go.y" + +/* Line 1806 of yacc.c */ +#line 364 "go.y" { (yyval.list) = variter((yyvsp[(1) - (4)].list), (yyvsp[(2) - (4)].node), (yyvsp[(4) - (4)].list)); } break; case 42: -#line 365 "go.y" + +/* Line 1806 of yacc.c */ +#line 368 "go.y" { (yyval.list) = variter((yyvsp[(1) - (3)].list), nil, (yyvsp[(3) - (3)].list)); } break; case 43: -#line 371 "go.y" + +/* Line 1806 of yacc.c */ +#line 374 "go.y" { (yyval.list) = constiter((yyvsp[(1) - (4)].list), (yyvsp[(2) - (4)].node), (yyvsp[(4) - (4)].list)); } break; case 44: -#line 375 "go.y" + +/* Line 1806 of yacc.c */ +#line 378 "go.y" { (yyval.list) = constiter((yyvsp[(1) - (3)].list), N, (yyvsp[(3) - (3)].list)); } break; case 46: -#line 382 "go.y" + +/* Line 1806 of yacc.c */ +#line 385 "go.y" { (yyval.list) = constiter((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node), nil); } break; case 47: -#line 386 "go.y" + +/* Line 1806 of yacc.c */ +#line 389 "go.y" { (yyval.list) = constiter((yyvsp[(1) - (1)].list), N, nil); } break; case 48: -#line 392 "go.y" + +/* Line 1806 of yacc.c */ +#line 395 "go.y" { // different from dclname because the name // becomes visible right here, not at the end @@ -2698,14 +2838,18 @@ yyreduce: break; case 49: -#line 401 "go.y" + +/* Line 1806 of yacc.c */ +#line 404 "go.y" { (yyval.node) = typedcl1((yyvsp[(1) - (2)].node), (yyvsp[(2) - (2)].node), 1); } break; case 50: -#line 407 "go.y" + +/* Line 1806 of yacc.c */ +#line 410 "go.y" { (yyval.node) = (yyvsp[(1) - (1)].node); @@ -2726,7 +2870,9 @@ yyreduce: break; case 51: -#line 425 "go.y" + +/* Line 1806 of yacc.c */ +#line 428 "go.y" { (yyval.node) = nod(OASOP, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); (yyval.node)->etype = (yyvsp[(2) - (3)].i); // rathole to pass opcode @@ -2734,7 +2880,9 @@ yyreduce: break; case 52: -#line 430 "go.y" + +/* Line 1806 of yacc.c */ +#line 433 "go.y" { if((yyvsp[(1) - (3)].list)->next == nil && (yyvsp[(3) - (3)].list)->next == nil) { // simple @@ -2749,7 +2897,9 @@ yyreduce: break; case 53: -#line 442 "go.y" + +/* Line 1806 of yacc.c */ +#line 445 "go.y" { if((yyvsp[(3) - (3)].list)->n->op == OTYPESW) { (yyval.node) = nod(OTYPESW, N, (yyvsp[(3) - (3)].list)->n->right); @@ -2768,7 +2918,9 @@ yyreduce: break; case 54: -#line 458 "go.y" + +/* Line 1806 of yacc.c */ +#line 461 "go.y" { (yyval.node) = nod(OASOP, (yyvsp[(1) - (2)].node), nodintconst(1)); (yyval.node)->etype = OADD; @@ -2776,7 +2928,9 @@ yyreduce: break; case 55: -#line 463 "go.y" + +/* Line 1806 of yacc.c */ +#line 466 "go.y" { (yyval.node) = nod(OASOP, (yyvsp[(1) - (2)].node), nodintconst(1)); (yyval.node)->etype = OSUB; @@ -2784,7 +2938,9 @@ yyreduce: break; case 56: -#line 470 "go.y" + +/* Line 1806 of yacc.c */ +#line 473 "go.y" { Node *n, *nn; @@ -2807,7 +2963,9 @@ yyreduce: break; case 57: -#line 490 "go.y" + +/* Line 1806 of yacc.c */ +#line 493 "go.y" { Node *n; @@ -2828,7 +2986,9 @@ yyreduce: break; case 58: -#line 508 "go.y" + +/* Line 1806 of yacc.c */ +#line 511 "go.y" { // will be converted to OCASE // right will point to next case @@ -2840,7 +3000,9 @@ yyreduce: break; case 59: -#line 517 "go.y" + +/* Line 1806 of yacc.c */ +#line 520 "go.y" { Node *n, *nn; @@ -2859,14 +3021,18 @@ yyreduce: break; case 60: -#line 535 "go.y" + +/* Line 1806 of yacc.c */ +#line 538 "go.y" { markdcl(); } break; case 61: -#line 539 "go.y" + +/* Line 1806 of yacc.c */ +#line 542 "go.y" { if((yyvsp[(3) - (4)].list) == nil) (yyval.node) = nod(OEMPTY, N, N); @@ -2877,7 +3043,9 @@ yyreduce: break; case 62: -#line 549 "go.y" + +/* Line 1806 of yacc.c */ +#line 552 "go.y" { // If the last token read by the lexer was consumed // as part of the case, clear it (parser has cleared yychar). @@ -2890,7 +3058,9 @@ yyreduce: break; case 63: -#line 559 "go.y" + +/* Line 1806 of yacc.c */ +#line 562 "go.y" { int last; @@ -2912,28 +3082,36 @@ yyreduce: break; case 64: -#line 579 "go.y" + +/* Line 1806 of yacc.c */ +#line 582 "go.y" { (yyval.list) = nil; } break; case 65: -#line 583 "go.y" + +/* Line 1806 of yacc.c */ +#line 586 "go.y" { (yyval.list) = list((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node)); } break; case 66: -#line 589 "go.y" + +/* Line 1806 of yacc.c */ +#line 592 "go.y" { markdcl(); } break; case 67: -#line 593 "go.y" + +/* Line 1806 of yacc.c */ +#line 596 "go.y" { (yyval.list) = (yyvsp[(3) - (4)].list); popdcl(); @@ -2941,7 +3119,9 @@ yyreduce: break; case 68: -#line 600 "go.y" + +/* Line 1806 of yacc.c */ +#line 603 "go.y" { (yyval.node) = nod(ORANGE, N, (yyvsp[(4) - (4)].node)); (yyval.node)->list = (yyvsp[(1) - (4)].list); @@ -2950,7 +3130,9 @@ yyreduce: break; case 69: -#line 606 "go.y" + +/* Line 1806 of yacc.c */ +#line 609 "go.y" { (yyval.node) = nod(ORANGE, N, (yyvsp[(4) - (4)].node)); (yyval.node)->list = (yyvsp[(1) - (4)].list); @@ -2960,7 +3142,9 @@ yyreduce: break; case 70: -#line 615 "go.y" + +/* Line 1806 of yacc.c */ +#line 618 "go.y" { // init ; test ; incr if((yyvsp[(5) - (5)].node) != N && (yyvsp[(5) - (5)].node)->colas != 0) @@ -2974,7 +3158,9 @@ yyreduce: break; case 71: -#line 626 "go.y" + +/* Line 1806 of yacc.c */ +#line 629 "go.y" { // normal test (yyval.node) = nod(OFOR, N, N); @@ -2983,7 +3169,9 @@ yyreduce: break; case 73: -#line 635 "go.y" + +/* Line 1806 of yacc.c */ +#line 638 "go.y" { (yyval.node) = (yyvsp[(1) - (2)].node); (yyval.node)->nbody = concat((yyval.node)->nbody, (yyvsp[(2) - (2)].list)); @@ -2991,14 +3179,18 @@ yyreduce: break; case 74: -#line 642 "go.y" + +/* Line 1806 of yacc.c */ +#line 645 "go.y" { markdcl(); } break; case 75: -#line 646 "go.y" + +/* Line 1806 of yacc.c */ +#line 649 "go.y" { (yyval.node) = (yyvsp[(3) - (3)].node); popdcl(); @@ -3006,7 +3198,9 @@ yyreduce: break; case 76: -#line 653 "go.y" + +/* Line 1806 of yacc.c */ +#line 656 "go.y" { // test (yyval.node) = nod(OIF, N, N); @@ -3015,7 +3209,9 @@ yyreduce: break; case 77: -#line 659 "go.y" + +/* Line 1806 of yacc.c */ +#line 662 "go.y" { // init ; test (yyval.node) = nod(OIF, N, N); @@ -3026,14 +3222,18 @@ yyreduce: break; case 78: -#line 670 "go.y" + +/* Line 1806 of yacc.c */ +#line 673 "go.y" { markdcl(); } break; case 79: -#line 674 "go.y" + +/* Line 1806 of yacc.c */ +#line 677 "go.y" { if((yyvsp[(3) - (3)].node)->ntest == N) yyerror("missing condition in if statement"); @@ -3041,14 +3241,18 @@ yyreduce: break; case 80: -#line 679 "go.y" + +/* Line 1806 of yacc.c */ +#line 682 "go.y" { (yyvsp[(3) - (5)].node)->nbody = (yyvsp[(5) - (5)].list); } break; case 81: -#line 683 "go.y" + +/* Line 1806 of yacc.c */ +#line 686 "go.y" { Node *n; NodeList *nn; @@ -3066,14 +3270,18 @@ yyreduce: break; case 82: -#line 700 "go.y" + +/* Line 1806 of yacc.c */ +#line 703 "go.y" { markdcl(); } break; case 83: -#line 704 "go.y" + +/* Line 1806 of yacc.c */ +#line 707 "go.y" { if((yyvsp[(4) - (5)].node)->ntest == N) yyerror("missing condition in if statement"); @@ -3083,28 +3291,36 @@ yyreduce: break; case 84: -#line 712 "go.y" + +/* Line 1806 of yacc.c */ +#line 715 "go.y" { (yyval.list) = nil; } break; case 85: -#line 716 "go.y" + +/* Line 1806 of yacc.c */ +#line 719 "go.y" { (yyval.list) = concat((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].list)); } break; case 86: -#line 721 "go.y" + +/* Line 1806 of yacc.c */ +#line 724 "go.y" { (yyval.list) = nil; } break; case 87: -#line 725 "go.y" + +/* Line 1806 of yacc.c */ +#line 728 "go.y" { NodeList *node; @@ -3116,14 +3332,18 @@ yyreduce: break; case 88: -#line 736 "go.y" + +/* Line 1806 of yacc.c */ +#line 739 "go.y" { markdcl(); } break; case 89: -#line 740 "go.y" + +/* Line 1806 of yacc.c */ +#line 743 "go.y" { Node *n; n = (yyvsp[(3) - (3)].node)->ntest; @@ -3134,7 +3354,9 @@ yyreduce: break; case 90: -#line 748 "go.y" + +/* Line 1806 of yacc.c */ +#line 751 "go.y" { (yyval.node) = (yyvsp[(3) - (7)].node); (yyval.node)->op = OSWITCH; @@ -3145,14 +3367,18 @@ yyreduce: break; case 91: -#line 758 "go.y" + +/* Line 1806 of yacc.c */ +#line 761 "go.y" { typesw = nod(OXXX, typesw, N); } break; case 92: -#line 762 "go.y" + +/* Line 1806 of yacc.c */ +#line 765 "go.y" { (yyval.node) = nod(OSELECT, N, N); (yyval.node)->lineno = typesw->lineno; @@ -3162,154 +3388,198 @@ yyreduce: break; case 94: -#line 775 "go.y" + +/* Line 1806 of yacc.c */ +#line 778 "go.y" { (yyval.node) = nod(OOROR, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); } break; case 95: -#line 779 "go.y" + +/* Line 1806 of yacc.c */ +#line 782 "go.y" { (yyval.node) = nod(OANDAND, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); } break; case 96: -#line 783 "go.y" + +/* Line 1806 of yacc.c */ +#line 786 "go.y" { (yyval.node) = nod(OEQ, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); } break; case 97: -#line 787 "go.y" + +/* Line 1806 of yacc.c */ +#line 790 "go.y" { (yyval.node) = nod(ONE, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); } break; case 98: -#line 791 "go.y" + +/* Line 1806 of yacc.c */ +#line 794 "go.y" { (yyval.node) = nod(OLT, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); } break; case 99: -#line 795 "go.y" + +/* Line 1806 of yacc.c */ +#line 798 "go.y" { (yyval.node) = nod(OLE, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); } break; case 100: -#line 799 "go.y" + +/* Line 1806 of yacc.c */ +#line 802 "go.y" { (yyval.node) = nod(OGE, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); } break; case 101: -#line 803 "go.y" + +/* Line 1806 of yacc.c */ +#line 806 "go.y" { (yyval.node) = nod(OGT, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); } break; case 102: -#line 807 "go.y" + +/* Line 1806 of yacc.c */ +#line 810 "go.y" { (yyval.node) = nod(OADD, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); } break; case 103: -#line 811 "go.y" + +/* Line 1806 of yacc.c */ +#line 814 "go.y" { (yyval.node) = nod(OSUB, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); } break; case 104: -#line 815 "go.y" + +/* Line 1806 of yacc.c */ +#line 818 "go.y" { (yyval.node) = nod(OOR, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); } break; case 105: -#line 819 "go.y" + +/* Line 1806 of yacc.c */ +#line 822 "go.y" { (yyval.node) = nod(OXOR, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); } break; case 106: -#line 823 "go.y" + +/* Line 1806 of yacc.c */ +#line 826 "go.y" { (yyval.node) = nod(OMUL, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); } break; case 107: -#line 827 "go.y" + +/* Line 1806 of yacc.c */ +#line 830 "go.y" { (yyval.node) = nod(ODIV, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); } break; case 108: -#line 831 "go.y" + +/* Line 1806 of yacc.c */ +#line 834 "go.y" { (yyval.node) = nod(OMOD, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); } break; case 109: -#line 835 "go.y" + +/* Line 1806 of yacc.c */ +#line 838 "go.y" { (yyval.node) = nod(OAND, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); } break; case 110: -#line 839 "go.y" + +/* Line 1806 of yacc.c */ +#line 842 "go.y" { (yyval.node) = nod(OANDNOT, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); } break; case 111: -#line 843 "go.y" + +/* Line 1806 of yacc.c */ +#line 846 "go.y" { (yyval.node) = nod(OLSH, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); } break; case 112: -#line 847 "go.y" + +/* Line 1806 of yacc.c */ +#line 850 "go.y" { (yyval.node) = nod(ORSH, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); } break; case 113: -#line 852 "go.y" + +/* Line 1806 of yacc.c */ +#line 855 "go.y" { (yyval.node) = nod(OSEND, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); } break; case 115: -#line 859 "go.y" + +/* Line 1806 of yacc.c */ +#line 862 "go.y" { (yyval.node) = nod(OIND, (yyvsp[(2) - (2)].node), N); } break; case 116: -#line 863 "go.y" + +/* Line 1806 of yacc.c */ +#line 866 "go.y" { if((yyvsp[(2) - (2)].node)->op == OCOMPLIT) { // Special case for &T{...}: turn into (*T){...}. @@ -3323,28 +3593,36 @@ yyreduce: break; case 117: -#line 874 "go.y" + +/* Line 1806 of yacc.c */ +#line 877 "go.y" { (yyval.node) = nod(OPLUS, (yyvsp[(2) - (2)].node), N); } break; case 118: -#line 878 "go.y" + +/* Line 1806 of yacc.c */ +#line 881 "go.y" { (yyval.node) = nod(OMINUS, (yyvsp[(2) - (2)].node), N); } break; case 119: -#line 882 "go.y" + +/* Line 1806 of yacc.c */ +#line 885 "go.y" { (yyval.node) = nod(ONOT, (yyvsp[(2) - (2)].node), N); } break; case 120: -#line 886 "go.y" + +/* Line 1806 of yacc.c */ +#line 889 "go.y" { yyerror("the bitwise complement operator is ^"); (yyval.node) = nod(OCOM, (yyvsp[(2) - (2)].node), N); @@ -3352,28 +3630,36 @@ yyreduce: break; case 121: -#line 891 "go.y" + +/* Line 1806 of yacc.c */ +#line 894 "go.y" { (yyval.node) = nod(OCOM, (yyvsp[(2) - (2)].node), N); } break; case 122: -#line 895 "go.y" + +/* Line 1806 of yacc.c */ +#line 898 "go.y" { (yyval.node) = nod(ORECV, (yyvsp[(2) - (2)].node), N); } break; case 123: -#line 905 "go.y" + +/* Line 1806 of yacc.c */ +#line 908 "go.y" { (yyval.node) = nod(OCALL, (yyvsp[(1) - (3)].node), N); } break; case 124: -#line 909 "go.y" + +/* Line 1806 of yacc.c */ +#line 912 "go.y" { (yyval.node) = nod(OCALL, (yyvsp[(1) - (5)].node), N); (yyval.node)->list = (yyvsp[(3) - (5)].list); @@ -3381,7 +3667,9 @@ yyreduce: break; case 125: -#line 914 "go.y" + +/* Line 1806 of yacc.c */ +#line 917 "go.y" { (yyval.node) = nod(OCALL, (yyvsp[(1) - (6)].node), N); (yyval.node)->list = (yyvsp[(3) - (6)].list); @@ -3390,14 +3678,18 @@ yyreduce: break; case 126: -#line 922 "go.y" + +/* Line 1806 of yacc.c */ +#line 925 "go.y" { (yyval.node) = nodlit((yyvsp[(1) - (1)].val)); } break; case 128: -#line 927 "go.y" + +/* Line 1806 of yacc.c */ +#line 930 "go.y" { if((yyvsp[(1) - (3)].node)->op == OPACK) { Sym *s; @@ -3411,35 +3703,58 @@ yyreduce: break; case 129: -#line 938 "go.y" + +/* Line 1806 of yacc.c */ +#line 941 "go.y" { (yyval.node) = nod(ODOTTYPE, (yyvsp[(1) - (5)].node), (yyvsp[(4) - (5)].node)); } break; case 130: -#line 942 "go.y" + +/* Line 1806 of yacc.c */ +#line 945 "go.y" { (yyval.node) = nod(OTYPESW, N, (yyvsp[(1) - (5)].node)); } break; case 131: -#line 946 "go.y" + +/* Line 1806 of yacc.c */ +#line 949 "go.y" { (yyval.node) = nod(OINDEX, (yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].node)); } break; case 132: -#line 950 "go.y" + +/* Line 1806 of yacc.c */ +#line 953 "go.y" { (yyval.node) = nod(OSLICE, (yyvsp[(1) - (6)].node), nod(OKEY, (yyvsp[(3) - (6)].node), (yyvsp[(5) - (6)].node))); } break; - case 134: -#line 955 "go.y" + case 133: + +/* Line 1806 of yacc.c */ +#line 957 "go.y" + { + if((yyvsp[(5) - (8)].node) == N) + yyerror("middle index required in 3-index slice"); + if((yyvsp[(7) - (8)].node) == N) + yyerror("final index required in 3-index slice"); + (yyval.node) = nod(OSLICE3, (yyvsp[(1) - (8)].node), nod(OKEY, (yyvsp[(3) - (8)].node), nod(OKEY, (yyvsp[(5) - (8)].node), (yyvsp[(7) - (8)].node)))); + } + break; + + case 135: + +/* Line 1806 of yacc.c */ +#line 966 "go.y" { // conversion (yyval.node) = nod(OCALL, (yyvsp[(1) - (5)].node), N); @@ -3447,8 +3762,10 @@ yyreduce: } break; - case 135: -#line 961 "go.y" + case 136: + +/* Line 1806 of yacc.c */ +#line 972 "go.y" { (yyval.node) = (yyvsp[(3) - (5)].node); (yyval.node)->right = (yyvsp[(1) - (5)].node); @@ -3457,8 +3774,10 @@ yyreduce: } break; - case 136: -#line 968 "go.y" + case 137: + +/* Line 1806 of yacc.c */ +#line 979 "go.y" { (yyval.node) = (yyvsp[(3) - (5)].node); (yyval.node)->right = (yyvsp[(1) - (5)].node); @@ -3466,8 +3785,10 @@ yyreduce: } break; - case 137: -#line 974 "go.y" + case 138: + +/* Line 1806 of yacc.c */ +#line 985 "go.y" { yyerror("cannot parenthesize type in composite literal"); (yyval.node) = (yyvsp[(5) - (7)].node); @@ -3476,8 +3797,10 @@ yyreduce: } break; - case 139: -#line 983 "go.y" + case 140: + +/* Line 1806 of yacc.c */ +#line 994 "go.y" { // composite expression. // make node early so we get the right line number. @@ -3485,15 +3808,19 @@ yyreduce: } break; - case 140: -#line 991 "go.y" + case 141: + +/* Line 1806 of yacc.c */ +#line 1002 "go.y" { (yyval.node) = nod(OKEY, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); } break; - case 141: -#line 997 "go.y" + case 142: + +/* Line 1806 of yacc.c */ +#line 1008 "go.y" { // These nodes do not carry line numbers. // Since a composite literal commonly spans several lines, @@ -3512,24 +3839,30 @@ yyreduce: } break; - case 142: -#line 1014 "go.y" + case 143: + +/* Line 1806 of yacc.c */ +#line 1025 "go.y" { (yyval.node) = (yyvsp[(2) - (4)].node); (yyval.node)->list = (yyvsp[(3) - (4)].list); } break; - case 144: -#line 1022 "go.y" + case 145: + +/* Line 1806 of yacc.c */ +#line 1033 "go.y" { (yyval.node) = (yyvsp[(2) - (4)].node); (yyval.node)->list = (yyvsp[(3) - (4)].list); } break; - case 146: -#line 1030 "go.y" + case 147: + +/* Line 1806 of yacc.c */ +#line 1041 "go.y" { (yyval.node) = (yyvsp[(2) - (3)].node); @@ -3548,22 +3881,28 @@ yyreduce: } break; - case 150: -#line 1056 "go.y" + case 151: + +/* Line 1806 of yacc.c */ +#line 1067 "go.y" { (yyval.i) = LBODY; } break; - case 151: -#line 1060 "go.y" + case 152: + +/* Line 1806 of yacc.c */ +#line 1071 "go.y" { (yyval.i) = '{'; } break; - case 152: -#line 1071 "go.y" + case 153: + +/* Line 1806 of yacc.c */ +#line 1082 "go.y" { if((yyvsp[(1) - (1)].sym) == S) (yyval.node) = N; @@ -3572,22 +3911,28 @@ yyreduce: } break; - case 153: -#line 1080 "go.y" + case 154: + +/* Line 1806 of yacc.c */ +#line 1091 "go.y" { (yyval.node) = dclname((yyvsp[(1) - (1)].sym)); } break; - case 154: -#line 1085 "go.y" + case 155: + +/* Line 1806 of yacc.c */ +#line 1096 "go.y" { (yyval.node) = N; } break; - case 156: -#line 1092 "go.y" + case 157: + +/* Line 1806 of yacc.c */ +#line 1103 "go.y" { (yyval.sym) = (yyvsp[(1) - (1)].sym); // during imports, unqualified non-exported identifiers are from builtinpkg @@ -3596,15 +3941,19 @@ yyreduce: } break; - case 158: -#line 1100 "go.y" + case 159: + +/* Line 1806 of yacc.c */ +#line 1111 "go.y" { (yyval.sym) = S; } break; - case 159: -#line 1106 "go.y" + case 160: + +/* Line 1806 of yacc.c */ +#line 1117 "go.y" { Pkg *p; @@ -3619,8 +3968,28 @@ yyreduce: } break; - case 160: -#line 1121 "go.y" + case 161: + +/* Line 1806 of yacc.c */ +#line 1130 "go.y" + { + Pkg *p; + + if((yyvsp[(2) - (4)].val).u.sval->len == 0) + p = importpkg; + else { + if(isbadimport((yyvsp[(2) - (4)].val).u.sval)) + errorexit(); + p = mkpkg((yyvsp[(2) - (4)].val).u.sval); + } + (yyval.sym) = pkglookup("?", p); + } + break; + + case 162: + +/* Line 1806 of yacc.c */ +#line 1145 "go.y" { (yyval.node) = oldname((yyvsp[(1) - (1)].sym)); if((yyval.node)->pack != N) @@ -3628,44 +3997,56 @@ yyreduce: } break; - case 162: -#line 1141 "go.y" + case 164: + +/* Line 1806 of yacc.c */ +#line 1165 "go.y" { yyerror("final argument in variadic function missing type"); (yyval.node) = nod(ODDD, typenod(typ(TINTER)), N); } break; - case 163: -#line 1146 "go.y" + case 165: + +/* Line 1806 of yacc.c */ +#line 1170 "go.y" { (yyval.node) = nod(ODDD, (yyvsp[(2) - (2)].node), N); } break; - case 169: -#line 1157 "go.y" + case 171: + +/* Line 1806 of yacc.c */ +#line 1181 "go.y" { (yyval.node) = nod(OTPAREN, (yyvsp[(2) - (3)].node), N); } break; - case 173: -#line 1166 "go.y" + case 175: + +/* Line 1806 of yacc.c */ +#line 1190 "go.y" { (yyval.node) = nod(OIND, (yyvsp[(2) - (2)].node), N); } break; - case 178: -#line 1176 "go.y" + case 180: + +/* Line 1806 of yacc.c */ +#line 1200 "go.y" { (yyval.node) = nod(OTPAREN, (yyvsp[(2) - (3)].node), N); } break; - case 188: -#line 1197 "go.y" + case 190: + +/* Line 1806 of yacc.c */ +#line 1221 "go.y" { if((yyvsp[(1) - (3)].node)->op == OPACK) { Sym *s; @@ -3678,61 +4059,77 @@ yyreduce: } break; - case 189: -#line 1210 "go.y" + case 191: + +/* Line 1806 of yacc.c */ +#line 1234 "go.y" { (yyval.node) = nod(OTARRAY, (yyvsp[(2) - (4)].node), (yyvsp[(4) - (4)].node)); } break; - case 190: -#line 1214 "go.y" + case 192: + +/* Line 1806 of yacc.c */ +#line 1238 "go.y" { // array literal of nelem (yyval.node) = nod(OTARRAY, nod(ODDD, N, N), (yyvsp[(4) - (4)].node)); } break; - case 191: -#line 1219 "go.y" + case 193: + +/* Line 1806 of yacc.c */ +#line 1243 "go.y" { (yyval.node) = nod(OTCHAN, (yyvsp[(2) - (2)].node), N); (yyval.node)->etype = Cboth; } break; - case 192: -#line 1224 "go.y" + case 194: + +/* Line 1806 of yacc.c */ +#line 1248 "go.y" { (yyval.node) = nod(OTCHAN, (yyvsp[(3) - (3)].node), N); (yyval.node)->etype = Csend; } break; - case 193: -#line 1229 "go.y" + case 195: + +/* Line 1806 of yacc.c */ +#line 1253 "go.y" { (yyval.node) = nod(OTMAP, (yyvsp[(3) - (5)].node), (yyvsp[(5) - (5)].node)); } break; - case 196: -#line 1237 "go.y" + case 198: + +/* Line 1806 of yacc.c */ +#line 1261 "go.y" { (yyval.node) = nod(OIND, (yyvsp[(2) - (2)].node), N); } break; - case 197: -#line 1243 "go.y" + case 199: + +/* Line 1806 of yacc.c */ +#line 1267 "go.y" { (yyval.node) = nod(OTCHAN, (yyvsp[(3) - (3)].node), N); (yyval.node)->etype = Crecv; } break; - case 198: -#line 1250 "go.y" + case 200: + +/* Line 1806 of yacc.c */ +#line 1274 "go.y" { (yyval.node) = nod(OTSTRUCT, N, N); (yyval.node)->list = (yyvsp[(3) - (5)].list); @@ -3740,16 +4137,20 @@ yyreduce: } break; - case 199: -#line 1256 "go.y" + case 201: + +/* Line 1806 of yacc.c */ +#line 1280 "go.y" { (yyval.node) = nod(OTSTRUCT, N, N); fixlbrace((yyvsp[(2) - (3)].i)); } break; - case 200: -#line 1263 "go.y" + case 202: + +/* Line 1806 of yacc.c */ +#line 1287 "go.y" { (yyval.node) = nod(OTINTER, N, N); (yyval.node)->list = (yyvsp[(3) - (5)].list); @@ -3757,16 +4158,20 @@ yyreduce: } break; - case 201: -#line 1269 "go.y" + case 203: + +/* Line 1806 of yacc.c */ +#line 1293 "go.y" { (yyval.node) = nod(OTINTER, N, N); fixlbrace((yyvsp[(2) - (3)].i)); } break; - case 202: -#line 1280 "go.y" + case 204: + +/* Line 1806 of yacc.c */ +#line 1304 "go.y" { (yyval.node) = (yyvsp[(2) - (3)].node); if((yyval.node) == N) @@ -3780,8 +4185,10 @@ yyreduce: } break; - case 203: -#line 1294 "go.y" + case 205: + +/* Line 1806 of yacc.c */ +#line 1318 "go.y" { Node *t; @@ -3812,8 +4219,10 @@ yyreduce: } break; - case 204: -#line 1323 "go.y" + case 206: + +/* Line 1806 of yacc.c */ +#line 1347 "go.y" { Node *rcvr, *t; @@ -3853,8 +4262,10 @@ yyreduce: } break; - case 205: -#line 1363 "go.y" + case 207: + +/* Line 1806 of yacc.c */ +#line 1387 "go.y" { Sym *s; Type *t; @@ -3881,8 +4292,10 @@ yyreduce: } break; - case 206: -#line 1388 "go.y" + case 208: + +/* Line 1806 of yacc.c */ +#line 1412 "go.y" { (yyval.node) = methodname1(newname((yyvsp[(4) - (8)].sym)), (yyvsp[(2) - (8)].list)->n->right); (yyval.node)->type = functype((yyvsp[(2) - (8)].list)->n, (yyvsp[(6) - (8)].list), (yyvsp[(8) - (8)].list)); @@ -3900,8 +4313,10 @@ yyreduce: } break; - case 207: -#line 1406 "go.y" + case 209: + +/* Line 1806 of yacc.c */ +#line 1430 "go.y" { (yyvsp[(3) - (5)].list) = checkarglist((yyvsp[(3) - (5)].list), 1); (yyval.node) = nod(OTFUNC, N, N); @@ -3910,15 +4325,19 @@ yyreduce: } break; - case 208: -#line 1414 "go.y" + case 210: + +/* Line 1806 of yacc.c */ +#line 1438 "go.y" { (yyval.list) = nil; } break; - case 209: -#line 1418 "go.y" + case 211: + +/* Line 1806 of yacc.c */ +#line 1442 "go.y" { (yyval.list) = (yyvsp[(2) - (3)].list); if((yyval.list) == nil) @@ -3926,59 +4345,75 @@ yyreduce: } break; - case 210: -#line 1426 "go.y" + case 212: + +/* Line 1806 of yacc.c */ +#line 1450 "go.y" { (yyval.list) = nil; } break; - case 211: -#line 1430 "go.y" + case 213: + +/* Line 1806 of yacc.c */ +#line 1454 "go.y" { (yyval.list) = list1(nod(ODCLFIELD, N, (yyvsp[(1) - (1)].node))); } break; - case 212: -#line 1434 "go.y" + case 214: + +/* Line 1806 of yacc.c */ +#line 1458 "go.y" { (yyvsp[(2) - (3)].list) = checkarglist((yyvsp[(2) - (3)].list), 0); (yyval.list) = (yyvsp[(2) - (3)].list); } break; - case 213: -#line 1441 "go.y" + case 215: + +/* Line 1806 of yacc.c */ +#line 1465 "go.y" { closurehdr((yyvsp[(1) - (1)].node)); } break; - case 214: -#line 1447 "go.y" + case 216: + +/* Line 1806 of yacc.c */ +#line 1471 "go.y" { (yyval.node) = closurebody((yyvsp[(3) - (4)].list)); fixlbrace((yyvsp[(2) - (4)].i)); } break; - case 215: -#line 1452 "go.y" + case 217: + +/* Line 1806 of yacc.c */ +#line 1476 "go.y" { (yyval.node) = closurebody(nil); } break; - case 216: -#line 1463 "go.y" + case 218: + +/* Line 1806 of yacc.c */ +#line 1487 "go.y" { (yyval.list) = nil; } break; - case 217: -#line 1467 "go.y" + case 219: + +/* Line 1806 of yacc.c */ +#line 1491 "go.y" { (yyval.list) = concat((yyvsp[(1) - (3)].list), (yyvsp[(2) - (3)].list)); if(nsyntaxerrors == 0) @@ -3988,68 +4423,84 @@ yyreduce: } break; - case 219: -#line 1478 "go.y" + case 221: + +/* Line 1806 of yacc.c */ +#line 1502 "go.y" { (yyval.list) = concat((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].list)); } break; - case 221: -#line 1485 "go.y" + case 223: + +/* Line 1806 of yacc.c */ +#line 1509 "go.y" { (yyval.list) = concat((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].list)); } break; - case 222: -#line 1491 "go.y" + case 224: + +/* Line 1806 of yacc.c */ +#line 1515 "go.y" { (yyval.list) = list1((yyvsp[(1) - (1)].node)); } break; - case 223: -#line 1495 "go.y" + case 225: + +/* Line 1806 of yacc.c */ +#line 1519 "go.y" { (yyval.list) = list((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); } break; - case 225: -#line 1502 "go.y" + case 227: + +/* Line 1806 of yacc.c */ +#line 1526 "go.y" { (yyval.list) = concat((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].list)); } break; - case 226: -#line 1508 "go.y" + case 228: + +/* Line 1806 of yacc.c */ +#line 1532 "go.y" { (yyval.list) = list1((yyvsp[(1) - (1)].node)); } break; - case 227: -#line 1512 "go.y" + case 229: + +/* Line 1806 of yacc.c */ +#line 1536 "go.y" { (yyval.list) = list((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); } break; - case 228: -#line 1518 "go.y" + case 230: + +/* Line 1806 of yacc.c */ +#line 1542 "go.y" { NodeList *l; Node *n; l = (yyvsp[(1) - (3)].list); - if(l != nil && l->next == nil && l->n == nil) { - // ? symbol, during import + if(l == nil) { + // ? symbol, during import (list1(N) == nil) n = (yyvsp[(2) - (3)].node); if(n->op == OIND) n = n->left; - n = embedded(n->sym); + n = embedded(n->sym, importpkg); n->right = (yyvsp[(2) - (3)].node); n->val = (yyvsp[(3) - (3)].val); (yyval.list) = list1(n); @@ -4063,16 +4514,20 @@ yyreduce: } break; - case 229: -#line 1541 "go.y" + case 231: + +/* Line 1806 of yacc.c */ +#line 1565 "go.y" { (yyvsp[(1) - (2)].node)->val = (yyvsp[(2) - (2)].val); (yyval.list) = list1((yyvsp[(1) - (2)].node)); } break; - case 230: -#line 1546 "go.y" + case 232: + +/* Line 1806 of yacc.c */ +#line 1570 "go.y" { (yyvsp[(2) - (4)].node)->val = (yyvsp[(4) - (4)].val); (yyval.list) = list1((yyvsp[(2) - (4)].node)); @@ -4080,8 +4535,10 @@ yyreduce: } break; - case 231: -#line 1552 "go.y" + case 233: + +/* Line 1806 of yacc.c */ +#line 1576 "go.y" { (yyvsp[(2) - (3)].node)->right = nod(OIND, (yyvsp[(2) - (3)].node)->right, N); (yyvsp[(2) - (3)].node)->val = (yyvsp[(3) - (3)].val); @@ -4089,8 +4546,10 @@ yyreduce: } break; - case 232: -#line 1558 "go.y" + case 234: + +/* Line 1806 of yacc.c */ +#line 1582 "go.y" { (yyvsp[(3) - (5)].node)->right = nod(OIND, (yyvsp[(3) - (5)].node)->right, N); (yyvsp[(3) - (5)].node)->val = (yyvsp[(5) - (5)].val); @@ -4099,8 +4558,10 @@ yyreduce: } break; - case 233: -#line 1565 "go.y" + case 235: + +/* Line 1806 of yacc.c */ +#line 1589 "go.y" { (yyvsp[(3) - (5)].node)->right = nod(OIND, (yyvsp[(3) - (5)].node)->right, N); (yyvsp[(3) - (5)].node)->val = (yyvsp[(5) - (5)].val); @@ -4109,8 +4570,10 @@ yyreduce: } break; - case 234: -#line 1574 "go.y" + case 236: + +/* Line 1806 of yacc.c */ +#line 1598 "go.y" { Node *n; @@ -4121,8 +4584,10 @@ yyreduce: } break; - case 235: -#line 1583 "go.y" + case 237: + +/* Line 1806 of yacc.c */ +#line 1607 "go.y" { Pkg *pkg; @@ -4137,38 +4602,48 @@ yyreduce: } break; - case 236: -#line 1598 "go.y" + case 238: + +/* Line 1806 of yacc.c */ +#line 1622 "go.y" { - (yyval.node) = embedded((yyvsp[(1) - (1)].sym)); + (yyval.node) = embedded((yyvsp[(1) - (1)].sym), localpkg); } break; - case 237: -#line 1604 "go.y" + case 239: + +/* Line 1806 of yacc.c */ +#line 1628 "go.y" { (yyval.node) = nod(ODCLFIELD, (yyvsp[(1) - (2)].node), (yyvsp[(2) - (2)].node)); ifacedcl((yyval.node)); } break; - case 238: -#line 1609 "go.y" + case 240: + +/* Line 1806 of yacc.c */ +#line 1633 "go.y" { (yyval.node) = nod(ODCLFIELD, N, oldname((yyvsp[(1) - (1)].sym))); } break; - case 239: -#line 1613 "go.y" + case 241: + +/* Line 1806 of yacc.c */ +#line 1637 "go.y" { (yyval.node) = nod(ODCLFIELD, N, oldname((yyvsp[(2) - (3)].sym))); yyerror("cannot parenthesize embedded type"); } break; - case 240: -#line 1620 "go.y" + case 242: + +/* Line 1806 of yacc.c */ +#line 1644 "go.y" { // without func keyword (yyvsp[(2) - (4)].list) = checkarglist((yyvsp[(2) - (4)].list), 1); @@ -4178,8 +4653,10 @@ yyreduce: } break; - case 242: -#line 1634 "go.y" + case 244: + +/* Line 1806 of yacc.c */ +#line 1658 "go.y" { (yyval.node) = nod(ONONAME, N, N); (yyval.node)->sym = (yyvsp[(1) - (2)].sym); @@ -4187,8 +4664,10 @@ yyreduce: } break; - case 243: -#line 1640 "go.y" + case 245: + +/* Line 1806 of yacc.c */ +#line 1664 "go.y" { (yyval.node) = nod(ONONAME, N, N); (yyval.node)->sym = (yyvsp[(1) - (2)].sym); @@ -4196,65 +4675,83 @@ yyreduce: } break; - case 245: -#line 1649 "go.y" + case 247: + +/* Line 1806 of yacc.c */ +#line 1673 "go.y" { (yyval.list) = list1((yyvsp[(1) - (1)].node)); } break; - case 246: -#line 1653 "go.y" + case 248: + +/* Line 1806 of yacc.c */ +#line 1677 "go.y" { (yyval.list) = list((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); } break; - case 247: -#line 1658 "go.y" + case 249: + +/* Line 1806 of yacc.c */ +#line 1682 "go.y" { (yyval.list) = nil; } break; - case 248: -#line 1662 "go.y" + case 250: + +/* Line 1806 of yacc.c */ +#line 1686 "go.y" { (yyval.list) = (yyvsp[(1) - (2)].list); } break; - case 249: -#line 1670 "go.y" + case 251: + +/* Line 1806 of yacc.c */ +#line 1694 "go.y" { (yyval.node) = N; } break; - case 251: -#line 1675 "go.y" + case 253: + +/* Line 1806 of yacc.c */ +#line 1699 "go.y" { (yyval.node) = liststmt((yyvsp[(1) - (1)].list)); } break; - case 253: -#line 1680 "go.y" + case 255: + +/* Line 1806 of yacc.c */ +#line 1704 "go.y" { (yyval.node) = N; } break; - case 259: -#line 1691 "go.y" + case 261: + +/* Line 1806 of yacc.c */ +#line 1715 "go.y" { (yyvsp[(1) - (2)].node) = nod(OLABEL, (yyvsp[(1) - (2)].node), N); (yyvsp[(1) - (2)].node)->sym = dclstack; // context, for goto restrictions } break; - case 260: -#line 1696 "go.y" + case 262: + +/* Line 1806 of yacc.c */ +#line 1720 "go.y" { NodeList *l; @@ -4266,52 +4763,66 @@ yyreduce: } break; - case 261: -#line 1706 "go.y" + case 263: + +/* Line 1806 of yacc.c */ +#line 1730 "go.y" { // will be converted to OFALL (yyval.node) = nod(OXFALL, N, N); } break; - case 262: -#line 1711 "go.y" + case 264: + +/* Line 1806 of yacc.c */ +#line 1735 "go.y" { (yyval.node) = nod(OBREAK, (yyvsp[(2) - (2)].node), N); } break; - case 263: -#line 1715 "go.y" + case 265: + +/* Line 1806 of yacc.c */ +#line 1739 "go.y" { (yyval.node) = nod(OCONTINUE, (yyvsp[(2) - (2)].node), N); } break; - case 264: -#line 1719 "go.y" + case 266: + +/* Line 1806 of yacc.c */ +#line 1743 "go.y" { (yyval.node) = nod(OPROC, (yyvsp[(2) - (2)].node), N); } break; - case 265: -#line 1723 "go.y" + case 267: + +/* Line 1806 of yacc.c */ +#line 1747 "go.y" { (yyval.node) = nod(ODEFER, (yyvsp[(2) - (2)].node), N); } break; - case 266: -#line 1727 "go.y" + case 268: + +/* Line 1806 of yacc.c */ +#line 1751 "go.y" { (yyval.node) = nod(OGOTO, (yyvsp[(2) - (2)].node), N); (yyval.node)->sym = dclstack; // context, for goto restrictions } break; - case 267: -#line 1732 "go.y" + case 269: + +/* Line 1806 of yacc.c */ +#line 1756 "go.y" { (yyval.node) = nod(ORETURN, N, N); (yyval.node)->list = (yyvsp[(2) - (2)].list); @@ -4330,8 +4841,10 @@ yyreduce: } break; - case 268: -#line 1751 "go.y" + case 270: + +/* Line 1806 of yacc.c */ +#line 1775 "go.y" { (yyval.list) = nil; if((yyvsp[(1) - (1)].node) != N) @@ -4339,8 +4852,10 @@ yyreduce: } break; - case 269: -#line 1757 "go.y" + case 271: + +/* Line 1806 of yacc.c */ +#line 1781 "go.y" { (yyval.list) = (yyvsp[(1) - (3)].list); if((yyvsp[(3) - (3)].node) != N) @@ -4348,190 +4863,244 @@ yyreduce: } break; - case 270: -#line 1765 "go.y" + case 272: + +/* Line 1806 of yacc.c */ +#line 1789 "go.y" { (yyval.list) = list1((yyvsp[(1) - (1)].node)); } break; - case 271: -#line 1769 "go.y" + case 273: + +/* Line 1806 of yacc.c */ +#line 1793 "go.y" { (yyval.list) = list((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); } break; - case 272: -#line 1775 "go.y" + case 274: + +/* Line 1806 of yacc.c */ +#line 1799 "go.y" { (yyval.list) = list1((yyvsp[(1) - (1)].node)); } break; - case 273: -#line 1779 "go.y" + case 275: + +/* Line 1806 of yacc.c */ +#line 1803 "go.y" { (yyval.list) = list((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); } break; - case 274: -#line 1785 "go.y" + case 276: + +/* Line 1806 of yacc.c */ +#line 1809 "go.y" { (yyval.list) = list1((yyvsp[(1) - (1)].node)); } break; - case 275: -#line 1789 "go.y" + case 277: + +/* Line 1806 of yacc.c */ +#line 1813 "go.y" { (yyval.list) = list((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); } break; - case 276: -#line 1795 "go.y" + case 278: + +/* Line 1806 of yacc.c */ +#line 1819 "go.y" { (yyval.list) = list1((yyvsp[(1) - (1)].node)); } break; - case 277: -#line 1799 "go.y" + case 279: + +/* Line 1806 of yacc.c */ +#line 1823 "go.y" { (yyval.list) = list((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); } break; - case 278: -#line 1808 "go.y" + case 280: + +/* Line 1806 of yacc.c */ +#line 1832 "go.y" { (yyval.list) = list1((yyvsp[(1) - (1)].node)); } break; - case 279: -#line 1812 "go.y" + case 281: + +/* Line 1806 of yacc.c */ +#line 1836 "go.y" { (yyval.list) = list1((yyvsp[(1) - (1)].node)); } break; - case 280: -#line 1816 "go.y" + case 282: + +/* Line 1806 of yacc.c */ +#line 1840 "go.y" { (yyval.list) = list((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); } break; - case 281: -#line 1820 "go.y" + case 283: + +/* Line 1806 of yacc.c */ +#line 1844 "go.y" { (yyval.list) = list((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); } break; - case 282: -#line 1825 "go.y" + case 284: + +/* Line 1806 of yacc.c */ +#line 1849 "go.y" { (yyval.list) = nil; } break; - case 283: -#line 1829 "go.y" + case 285: + +/* Line 1806 of yacc.c */ +#line 1853 "go.y" { (yyval.list) = (yyvsp[(1) - (2)].list); } break; - case 288: -#line 1843 "go.y" + case 290: + +/* Line 1806 of yacc.c */ +#line 1867 "go.y" { (yyval.node) = N; } break; - case 290: -#line 1849 "go.y" + case 292: + +/* Line 1806 of yacc.c */ +#line 1873 "go.y" { (yyval.list) = nil; } break; - case 292: -#line 1855 "go.y" + case 294: + +/* Line 1806 of yacc.c */ +#line 1879 "go.y" { (yyval.node) = N; } break; - case 294: -#line 1861 "go.y" + case 296: + +/* Line 1806 of yacc.c */ +#line 1885 "go.y" { (yyval.list) = nil; } break; - case 296: -#line 1867 "go.y" + case 298: + +/* Line 1806 of yacc.c */ +#line 1891 "go.y" { (yyval.list) = nil; } break; - case 298: -#line 1873 "go.y" + case 300: + +/* Line 1806 of yacc.c */ +#line 1897 "go.y" { (yyval.list) = nil; } break; - case 300: -#line 1879 "go.y" + case 302: + +/* Line 1806 of yacc.c */ +#line 1903 "go.y" { (yyval.val).ctype = CTxxx; } break; - case 302: -#line 1889 "go.y" + case 304: + +/* Line 1806 of yacc.c */ +#line 1913 "go.y" { importimport((yyvsp[(2) - (4)].sym), (yyvsp[(3) - (4)].val).u.sval); } break; - case 303: -#line 1893 "go.y" + case 305: + +/* Line 1806 of yacc.c */ +#line 1917 "go.y" { importvar((yyvsp[(2) - (4)].sym), (yyvsp[(3) - (4)].type)); } break; - case 304: -#line 1897 "go.y" + case 306: + +/* Line 1806 of yacc.c */ +#line 1921 "go.y" { importconst((yyvsp[(2) - (5)].sym), types[TIDEAL], (yyvsp[(4) - (5)].node)); } break; - case 305: -#line 1901 "go.y" + case 307: + +/* Line 1806 of yacc.c */ +#line 1925 "go.y" { importconst((yyvsp[(2) - (6)].sym), (yyvsp[(3) - (6)].type), (yyvsp[(5) - (6)].node)); } break; - case 306: -#line 1905 "go.y" + case 308: + +/* Line 1806 of yacc.c */ +#line 1929 "go.y" { importtype((yyvsp[(2) - (4)].type), (yyvsp[(3) - (4)].type)); } break; - case 307: -#line 1909 "go.y" + case 309: + +/* Line 1806 of yacc.c */ +#line 1933 "go.y" { if((yyvsp[(2) - (4)].node) == N) { dclcontext = PEXTERN; // since we skip the funcbody below @@ -4551,31 +5120,39 @@ yyreduce: } break; - case 308: -#line 1929 "go.y" + case 310: + +/* Line 1806 of yacc.c */ +#line 1953 "go.y" { (yyval.sym) = (yyvsp[(1) - (1)].sym); structpkg = (yyval.sym)->pkg; } break; - case 309: -#line 1936 "go.y" + case 311: + +/* Line 1806 of yacc.c */ +#line 1960 "go.y" { (yyval.type) = pkgtype((yyvsp[(1) - (1)].sym)); importsym((yyvsp[(1) - (1)].sym), OTYPE); } break; - case 315: -#line 1956 "go.y" + case 317: + +/* Line 1806 of yacc.c */ +#line 1980 "go.y" { (yyval.type) = pkgtype((yyvsp[(1) - (1)].sym)); } break; - case 316: -#line 1960 "go.y" + case 318: + +/* Line 1806 of yacc.c */ +#line 1984 "go.y" { // predefined name like uint8 (yyvsp[(1) - (1)].sym) = pkglookup((yyvsp[(1) - (1)].sym)->name, builtinpkg); @@ -4587,50 +5164,64 @@ yyreduce: } break; - case 317: -#line 1970 "go.y" + case 319: + +/* Line 1806 of yacc.c */ +#line 1994 "go.y" { (yyval.type) = aindex(N, (yyvsp[(3) - (3)].type)); } break; - case 318: -#line 1974 "go.y" + case 320: + +/* Line 1806 of yacc.c */ +#line 1998 "go.y" { (yyval.type) = aindex(nodlit((yyvsp[(2) - (4)].val)), (yyvsp[(4) - (4)].type)); } break; - case 319: -#line 1978 "go.y" + case 321: + +/* Line 1806 of yacc.c */ +#line 2002 "go.y" { (yyval.type) = maptype((yyvsp[(3) - (5)].type), (yyvsp[(5) - (5)].type)); } break; - case 320: -#line 1982 "go.y" + case 322: + +/* Line 1806 of yacc.c */ +#line 2006 "go.y" { (yyval.type) = tostruct((yyvsp[(3) - (4)].list)); } break; - case 321: -#line 1986 "go.y" + case 323: + +/* Line 1806 of yacc.c */ +#line 2010 "go.y" { (yyval.type) = tointerface((yyvsp[(3) - (4)].list)); } break; - case 322: -#line 1990 "go.y" + case 324: + +/* Line 1806 of yacc.c */ +#line 2014 "go.y" { (yyval.type) = ptrto((yyvsp[(2) - (2)].type)); } break; - case 323: -#line 1994 "go.y" + case 325: + +/* Line 1806 of yacc.c */ +#line 2018 "go.y" { (yyval.type) = typ(TCHAN); (yyval.type)->type = (yyvsp[(2) - (2)].type); @@ -4638,8 +5229,10 @@ yyreduce: } break; - case 324: -#line 2000 "go.y" + case 326: + +/* Line 1806 of yacc.c */ +#line 2024 "go.y" { (yyval.type) = typ(TCHAN); (yyval.type)->type = (yyvsp[(3) - (4)].type); @@ -4647,8 +5240,10 @@ yyreduce: } break; - case 325: -#line 2006 "go.y" + case 327: + +/* Line 1806 of yacc.c */ +#line 2030 "go.y" { (yyval.type) = typ(TCHAN); (yyval.type)->type = (yyvsp[(3) - (3)].type); @@ -4656,8 +5251,10 @@ yyreduce: } break; - case 326: -#line 2014 "go.y" + case 328: + +/* Line 1806 of yacc.c */ +#line 2038 "go.y" { (yyval.type) = typ(TCHAN); (yyval.type)->type = (yyvsp[(3) - (3)].type); @@ -4665,15 +5262,19 @@ yyreduce: } break; - case 327: -#line 2022 "go.y" + case 329: + +/* Line 1806 of yacc.c */ +#line 2046 "go.y" { (yyval.type) = functype(nil, (yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].list)); } break; - case 328: -#line 2028 "go.y" + case 330: + +/* Line 1806 of yacc.c */ +#line 2052 "go.y" { (yyval.node) = nod(ODCLFIELD, N, typenod((yyvsp[(2) - (3)].type))); if((yyvsp[(1) - (3)].sym)) @@ -4682,8 +5283,10 @@ yyreduce: } break; - case 329: -#line 2035 "go.y" + case 331: + +/* Line 1806 of yacc.c */ +#line 2059 "go.y" { Type *t; @@ -4699,69 +5302,89 @@ yyreduce: } break; - case 330: -#line 2051 "go.y" + case 332: + +/* Line 1806 of yacc.c */ +#line 2075 "go.y" { Sym *s; + Pkg *p; - if((yyvsp[(1) - (3)].sym) != S) { + if((yyvsp[(1) - (3)].sym) != S && strcmp((yyvsp[(1) - (3)].sym)->name, "?") != 0) { (yyval.node) = nod(ODCLFIELD, newname((yyvsp[(1) - (3)].sym)), typenod((yyvsp[(2) - (3)].type))); (yyval.node)->val = (yyvsp[(3) - (3)].val); } else { s = (yyvsp[(2) - (3)].type)->sym; if(s == S && isptr[(yyvsp[(2) - (3)].type)->etype]) s = (yyvsp[(2) - (3)].type)->type->sym; - (yyval.node) = embedded(s); + p = importpkg; + if((yyvsp[(1) - (3)].sym) != S) + p = (yyvsp[(1) - (3)].sym)->pkg; + (yyval.node) = embedded(s, p); (yyval.node)->right = typenod((yyvsp[(2) - (3)].type)); (yyval.node)->val = (yyvsp[(3) - (3)].val); } } break; - case 331: -#line 2069 "go.y" + case 333: + +/* Line 1806 of yacc.c */ +#line 2097 "go.y" { (yyval.node) = nod(ODCLFIELD, newname((yyvsp[(1) - (5)].sym)), typenod(functype(fakethis(), (yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].list)))); } break; - case 332: -#line 2073 "go.y" + case 334: + +/* Line 1806 of yacc.c */ +#line 2101 "go.y" { (yyval.node) = nod(ODCLFIELD, N, typenod((yyvsp[(1) - (1)].type))); } break; - case 333: -#line 2078 "go.y" + case 335: + +/* Line 1806 of yacc.c */ +#line 2106 "go.y" { (yyval.list) = nil; } break; - case 335: -#line 2085 "go.y" + case 337: + +/* Line 1806 of yacc.c */ +#line 2113 "go.y" { (yyval.list) = (yyvsp[(2) - (3)].list); } break; - case 336: -#line 2089 "go.y" + case 338: + +/* Line 1806 of yacc.c */ +#line 2117 "go.y" { (yyval.list) = list1(nod(ODCLFIELD, N, typenod((yyvsp[(1) - (1)].type)))); } break; - case 337: -#line 2099 "go.y" + case 339: + +/* Line 1806 of yacc.c */ +#line 2127 "go.y" { (yyval.node) = nodlit((yyvsp[(1) - (1)].val)); } break; - case 338: -#line 2103 "go.y" + case 340: + +/* Line 1806 of yacc.c */ +#line 2131 "go.y" { (yyval.node) = nodlit((yyvsp[(2) - (2)].val)); switch((yyval.node)->val.ctype){ @@ -4778,8 +5401,10 @@ yyreduce: } break; - case 339: -#line 2118 "go.y" + case 341: + +/* Line 1806 of yacc.c */ +#line 2146 "go.y" { (yyval.node) = oldname(pkglookup((yyvsp[(1) - (1)].sym)->name, builtinpkg)); if((yyval.node)->op != OLITERAL) @@ -4787,8 +5412,10 @@ yyreduce: } break; - case 341: -#line 2127 "go.y" + case 343: + +/* Line 1806 of yacc.c */ +#line 2155 "go.y" { if((yyvsp[(2) - (5)].node)->val.ctype == CTRUNE && (yyvsp[(4) - (5)].node)->val.ctype == CTINT) { (yyval.node) = (yyvsp[(2) - (5)].node); @@ -4801,53 +5428,77 @@ yyreduce: } break; - case 344: -#line 2143 "go.y" + case 346: + +/* Line 1806 of yacc.c */ +#line 2171 "go.y" { (yyval.list) = list1((yyvsp[(1) - (1)].node)); } break; - case 345: -#line 2147 "go.y" + case 347: + +/* Line 1806 of yacc.c */ +#line 2175 "go.y" { (yyval.list) = list((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); } break; - case 346: -#line 2153 "go.y" + case 348: + +/* Line 1806 of yacc.c */ +#line 2181 "go.y" { (yyval.list) = list1((yyvsp[(1) - (1)].node)); } break; - case 347: -#line 2157 "go.y" + case 349: + +/* Line 1806 of yacc.c */ +#line 2185 "go.y" { (yyval.list) = list((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); } break; - case 348: -#line 2163 "go.y" + case 350: + +/* Line 1806 of yacc.c */ +#line 2191 "go.y" { (yyval.list) = list1((yyvsp[(1) - (1)].node)); } break; - case 349: -#line 2167 "go.y" + case 351: + +/* Line 1806 of yacc.c */ +#line 2195 "go.y" { (yyval.list) = list((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); } break; -/* Line 1267 of yacc.c. */ -#line 4850 "y.tab.c" + +/* Line 1806 of yacc.c */ +#line 5490 "y.tab.c" default: break; } + /* User semantic actions sometimes alter yychar, and that requires + that yytoken be updated with the new translation. We take the + approach of translating immediately before every use of yytoken. + One alternative is translating here after every semantic action, + but that translation would be missed if the semantic action invokes + YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or + if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an + incorrect destructor might then be invoked immediately. In the + case of YYERROR or YYBACKUP, subsequent parser actions might lead + to an incorrect destructor call or verbose syntax error message + before the lookahead is translated. */ YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); YYPOPSTACK (yylen); @@ -4856,7 +5507,6 @@ yyreduce: *++yyvsp = yyval; - /* Now `shift' the result of the reduction. Determine what state that goes to, based on the state we popped back to and the rule number reduced by. */ @@ -4876,6 +5526,10 @@ yyreduce: | yyerrlab -- here on detecting error | `------------------------------------*/ yyerrlab: + /* Make sure we have latest lookahead translation. See comments at + user semantic actions for why this is necessary. */ + yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar); + /* If not already recovering from an error, report this error. */ if (!yyerrstatus) { @@ -4883,37 +5537,36 @@ yyerrlab: #if ! YYERROR_VERBOSE yyerror (YY_("syntax error")); #else +# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \ + yyssp, yytoken) { - YYSIZE_T yysize = yysyntax_error (0, yystate, yychar); - if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM) - { - YYSIZE_T yyalloc = 2 * yysize; - if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM)) - yyalloc = YYSTACK_ALLOC_MAXIMUM; - if (yymsg != yymsgbuf) - YYSTACK_FREE (yymsg); - yymsg = (char *) YYSTACK_ALLOC (yyalloc); - if (yymsg) - yymsg_alloc = yyalloc; - else - { - yymsg = yymsgbuf; - yymsg_alloc = sizeof yymsgbuf; - } - } - - if (0 < yysize && yysize <= yymsg_alloc) - { - (void) yysyntax_error (yymsg, yystate, yychar); - yyerror (yymsg); - } - else - { - yyerror (YY_("syntax error")); - if (yysize != 0) - goto yyexhaustedlab; - } + char *yymsgp = YY_("syntax error"); + int yysyntax_error_status; + yysyntax_error_status = YYSYNTAX_ERROR; + if (yysyntax_error_status == 0) + yymsgp = yymsg; + else if (yysyntax_error_status == 1) + { + if (yymsg != yymsgbuf) + YYSTACK_FREE (yymsg); + yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc); + if (!yymsg) + { + yymsg = yymsgbuf; + yymsg_alloc = sizeof yymsgbuf; + yysyntax_error_status = 2; + } + else + { + yysyntax_error_status = YYSYNTAX_ERROR; + yymsgp = yymsg; + } + } + yyerror (yymsgp); + if (yysyntax_error_status == 2) + goto yyexhaustedlab; } +# undef YYSYNTAX_ERROR #endif } @@ -4921,7 +5574,7 @@ yyerrlab: if (yyerrstatus == 3) { - /* If just tried and failed to reuse look-ahead token after an + /* If just tried and failed to reuse lookahead token after an error, discard it. */ if (yychar <= YYEOF) @@ -4938,7 +5591,7 @@ yyerrlab: } } - /* Else will try to reuse look-ahead token after shifting the error + /* Else will try to reuse lookahead token after shifting the error token. */ goto yyerrlab1; @@ -4972,7 +5625,7 @@ yyerrlab1: for (;;) { yyn = yypact[yystate]; - if (yyn != YYPACT_NINF) + if (!yypact_value_is_default (yyn)) { yyn += YYTERROR; if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) @@ -4995,9 +5648,6 @@ yyerrlab1: YY_STACK_PRINT (yyss, yyssp); } - if (yyn == YYFINAL) - YYACCEPT; - *++yyvsp = yylval; @@ -5022,7 +5672,7 @@ yyabortlab: yyresult = 1; goto yyreturn; -#ifndef yyoverflow +#if !defined(yyoverflow) || YYERROR_VERBOSE /*-------------------------------------------------. | yyexhaustedlab -- memory exhaustion comes here. | `-------------------------------------------------*/ @@ -5033,9 +5683,14 @@ yyexhaustedlab: #endif yyreturn: - if (yychar != YYEOF && yychar != YYEMPTY) - yydestruct ("Cleanup: discarding lookahead", - yytoken, &yylval); + if (yychar != YYEMPTY) + { + /* Make sure we have latest lookahead translation. See comments at + user semantic actions for why this is necessary. */ + yytoken = YYTRANSLATE (yychar); + yydestruct ("Cleanup: discarding lookahead", + yytoken, &yylval); + } /* Do not reclaim the symbols of the rule which action triggered this YYABORT or YYACCEPT. */ YYPOPSTACK (yylen); @@ -5059,7 +5714,9 @@ yyreturn: } -#line 2171 "go.y" + +/* Line 2067 of yacc.c */ +#line 2199 "go.y" static void |