diff options
-rw-r--r-- | src/cmd/gc/dcl.c | 8 | ||||
-rw-r--r-- | src/cmd/gc/fmt.c | 3 | ||||
-rw-r--r-- | src/cmd/gc/go.h | 2 | ||||
-rw-r--r-- | src/cmd/gc/go.y | 25 | ||||
-rw-r--r-- | src/cmd/gc/y.tab.c | 3398 | ||||
-rw-r--r-- | src/cmd/gc/y.tab.h | 46 | ||||
-rw-r--r-- | src/cmd/gc/yerr.h | 30 | ||||
-rw-r--r-- | test/fixedbugs/issue6513.dir/a.go | 7 | ||||
-rw-r--r-- | test/fixedbugs/issue6513.dir/b.go | 9 | ||||
-rw-r--r-- | test/fixedbugs/issue6513.dir/main.go | 16 | ||||
-rw-r--r-- | test/fixedbugs/issue6513.go | 10 |
11 files changed, 2129 insertions, 1425 deletions
diff --git a/src/cmd/gc/dcl.c b/src/cmd/gc/dcl.c index dc4d1f18e..406e8e5bd 100644 --- a/src/cmd/gc/dcl.c +++ b/src/cmd/gc/dcl.c @@ -1021,7 +1021,7 @@ tointerface(NodeList *l) } Node* -embedded(Sym *s) +embedded(Sym *s, Pkg *pkg) { Node *n; char *name; @@ -1038,9 +1038,9 @@ embedded(Sym *s) if(exportname(name)) n = newname(lookup(name)); - else if(s->pkg == builtinpkg && importpkg != nil) - // The name of embedded builtins during imports belongs to importpkg. - n = newname(pkglookup(name, importpkg)); + else if(s->pkg == builtinpkg) + // The name of embedded builtins belongs to pkg. + n = newname(pkglookup(name, pkg)); else n = newname(pkglookup(name, s->pkg)); n = nod(ODCLFIELD, n, oldname(s)); diff --git a/src/cmd/gc/fmt.c b/src/cmd/gc/fmt.c index 0db7ed22d..c525a56cb 100644 --- a/src/cmd/gc/fmt.c +++ b/src/cmd/gc/fmt.c @@ -754,6 +754,9 @@ typefmt(Fmt *fp, Type *t) //if(t->funarg) // fmtstrcpy(fp, "_ "); //else + if(t->embedded && s->pkg != nil && s->pkg->path->len > 0) + fmtprint(fp, "@\"%Z\".? ", s->pkg->path); + else fmtstrcpy(fp, "? "); } } diff --git a/src/cmd/gc/go.h b/src/cmd/gc/go.h index 770458588..7ba1c7e88 100644 --- a/src/cmd/gc/go.h +++ b/src/cmd/gc/go.h @@ -1080,7 +1080,7 @@ NodeList* constiter(NodeList *vl, Node *t, NodeList *cl); Node* dclname(Sym *s); void declare(Node *n, int ctxt); void dumpdcl(char *st); -Node* embedded(Sym *s); +Node* embedded(Sym *s, Pkg *pkg); Node* fakethis(void); void funcbody(Node *n); void funccompile(Node *n, int isclosure); diff --git a/src/cmd/gc/go.y b/src/cmd/gc/go.y index 5aabc6cf5..5432eca85 100644 --- a/src/cmd/gc/go.y +++ b/src/cmd/gc/go.y @@ -1126,6 +1126,19 @@ hidden_importsym: } $$ = pkglookup($4->name, p); } +| '@' LLITERAL '.' '?' + { + Pkg *p; + + if($2.u.sval->len == 0) + p = importpkg; + else { + if(isbadimport($2.u.sval)) + errorexit(); + p = mkpkg($2.u.sval); + } + $$ = pkglookup("?", p); + } name: sym %prec NotParen @@ -1536,7 +1549,7 @@ structdcl: n = $2; if(n->op == OIND) n = n->left; - n = embedded(n->sym); + n = embedded(n->sym, importpkg); n->right = $2; n->val = $3; $$ = list1(n); @@ -1607,7 +1620,7 @@ packname: embed: packname { - $$ = embedded($1); + $$ = embedded($1, localpkg); } interfacedcl: @@ -2061,15 +2074,19 @@ hidden_structdcl: sym hidden_type oliteral { Sym *s; + Pkg *p; - if($1 != S) { + if($1 != S && strcmp($1->name, "?") != 0) { $$ = nod(ODCLFIELD, newname($1), typenod($2)); $$->val = $3; } else { s = $2->sym; if(s == S && isptr[$2->etype]) s = $2->type->sym; - $$ = embedded(s); + p = importpkg; + if($1 != S) + p = $1->pkg; + $$ = embedded(s, p); $$->right = typenod($2); $$->val = $3; } diff --git a/src/cmd/gc/y.tab.c b/src/cmd/gc/y.tab.c index 43845540a..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 2198 +#define YYLAST 2270 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 76 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 142 /* YYNRULES -- Number of rules. */ -#define YYNRULES 350 +#define YYNRULES 351 /* YYNRULES -- Number of states. */ -#define YYNSTATES 666 +#define YYNSTATES 667 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 @@ -515,26 +532,26 @@ static const yytype_uint16 yyprhs[] = 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, 551, 553, 555, 558, 560, 562, 564, 566, - 568, 572, 574, 576, 578, 581, 583, 585, 587, 589, - 593, 595, 597, 599, 601, 603, 605, 607, 609, 611, - 615, 620, 625, 628, 632, 638, 640, 642, 645, 649, - 655, 659, 665, 669, 673, 679, 688, 694, 703, 709, - 710, 714, 715, 717, 721, 723, 728, 731, 732, 736, - 738, 742, 744, 748, 750, 754, 756, 760, 762, 766, - 770, 773, 778, 782, 788, 794, 796, 800, 802, 805, - 807, 811, 816, 818, 821, 824, 826, 828, 832, 833, - 836, 837, 839, 841, 843, 845, 847, 849, 851, 853, - 855, 856, 861, 863, 866, 869, 872, 875, 878, 881, - 883, 887, 889, 893, 895, 899, 901, 905, 907, 911, - 913, 915, 919, 923, 924, 927, 928, 930, 931, 933, - 934, 936, 937, 939, 940, 942, 943, 945, 946, 948, - 949, 951, 952, 954, 959, 964, 970, 977, 982, 987, - 989, 991, 993, 995, 997, 999, 1001, 1003, 1005, 1009, - 1014, 1020, 1025, 1030, 1033, 1036, 1041, 1045, 1049, 1055, - 1059, 1064, 1068, 1074, 1076, 1077, 1079, 1083, 1085, 1087, - 1090, 1092, 1094, 1100, 1101, 1104, 1106, 1110, 1112, 1116, - 1118 + 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. */ @@ -594,65 +611,65 @@ static const yytype_int16 yyrhs[] = 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 + 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. */ @@ -674,26 +691,26 @@ static const yytype_uint16 yyrline[] = 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, 1131, 1139, 1151, 1156, 1162, 1163, 1164, 1165, 1166, - 1167, 1173, 1174, 1175, 1176, 1182, 1183, 1184, 1185, 1186, - 1192, 1193, 1196, 1199, 1200, 1201, 1202, 1203, 1206, 1207, - 1220, 1224, 1229, 1234, 1239, 1243, 1244, 1247, 1253, 1260, - 1266, 1273, 1279, 1290, 1304, 1333, 1373, 1398, 1416, 1425, - 1428, 1436, 1440, 1444, 1451, 1457, 1462, 1474, 1477, 1487, - 1488, 1494, 1495, 1501, 1505, 1511, 1512, 1518, 1522, 1528, - 1551, 1556, 1562, 1568, 1575, 1584, 1593, 1608, 1614, 1619, - 1623, 1630, 1643, 1644, 1650, 1656, 1659, 1663, 1669, 1672, - 1681, 1684, 1685, 1689, 1690, 1696, 1697, 1698, 1699, 1700, - 1702, 1701, 1716, 1721, 1725, 1729, 1733, 1737, 1742, 1761, - 1767, 1775, 1779, 1785, 1789, 1795, 1799, 1805, 1809, 1818, - 1822, 1826, 1830, 1836, 1839, 1847, 1848, 1850, 1851, 1854, - 1857, 1860, 1863, 1866, 1869, 1872, 1875, 1878, 1881, 1884, - 1887, 1890, 1893, 1899, 1903, 1907, 1911, 1915, 1919, 1939, - 1946, 1957, 1958, 1959, 1962, 1963, 1966, 1970, 1980, 1984, - 1988, 1992, 1996, 2000, 2004, 2010, 2016, 2024, 2032, 2038, - 2045, 2061, 2079, 2083, 2089, 2092, 2095, 2099, 2109, 2113, - 2128, 2136, 2137, 2149, 2150, 2153, 2157, 2163, 2167, 2173, - 2177 + 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 @@ -712,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", @@ -731,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", @@ -781,26 +798,26 @@ static const yytype_uint8 yyr1[] = 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 + 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. */ @@ -822,667 +839,688 @@ static const yytype_uint8 yyr2[] = 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, 1, 1, 1, 2, 1, 1, 1, 1, 1, - 3, 1, 1, 1, 2, 1, 1, 1, 1, 3, + 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, 0, 1, 4, 4, 5, 6, 4, 4, 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, 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 + 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, 157, - 159, 0, 0, 158, 217, 20, 6, 343, 0, 4, + 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, 155, 0, 39, 155, - 0, 262, 74, 0, 0, 0, 78, 0, 0, 291, + 0, 263, 74, 0, 0, 0, 78, 0, 0, 292, 91, 0, 88, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 289, 0, 25, 0, 255, 256, - 259, 257, 258, 50, 93, 134, 146, 114, 162, 161, - 127, 0, 0, 0, 182, 195, 196, 26, 214, 0, + 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, - 344, 160, 11, 14, 285, 18, 22, 13, 17, 156, - 263, 153, 0, 0, 0, 0, 161, 188, 192, 178, - 176, 177, 175, 264, 134, 0, 293, 248, 0, 209, - 134, 267, 293, 151, 152, 0, 0, 275, 292, 268, - 0, 0, 293, 0, 0, 36, 48, 0, 29, 273, - 154, 0, 122, 117, 118, 121, 115, 116, 0, 0, - 148, 0, 149, 173, 171, 172, 119, 120, 0, 290, - 0, 218, 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, 289, 260, 0, 140, 216, 0, 0, 0, 0, - 309, 0, 0, 209, 0, 0, 310, 0, 0, 23, - 286, 0, 12, 248, 0, 0, 193, 169, 167, 168, - 165, 166, 197, 0, 0, 294, 72, 0, 75, 0, - 71, 163, 242, 161, 245, 150, 246, 287, 0, 248, - 0, 203, 79, 76, 157, 0, 202, 0, 285, 239, - 227, 0, 64, 0, 0, 200, 271, 285, 225, 237, - 301, 0, 89, 38, 223, 285, 49, 31, 219, 285, - 0, 0, 40, 0, 174, 147, 0, 0, 35, 285, - 0, 0, 51, 95, 110, 113, 96, 100, 101, 99, - 111, 98, 97, 94, 112, 102, 103, 104, 105, 106, - 107, 108, 109, 283, 123, 277, 287, 0, 128, 290, - 0, 0, 287, 283, 254, 60, 252, 251, 269, 253, - 0, 53, 52, 276, 0, 0, 0, 0, 317, 0, - 0, 0, 0, 0, 316, 0, 311, 312, 313, 0, - 345, 0, 0, 295, 0, 0, 0, 15, 10, 0, - 0, 0, 179, 189, 66, 73, 0, 0, 293, 164, - 243, 244, 288, 249, 211, 0, 0, 0, 293, 0, - 235, 0, 248, 238, 286, 0, 0, 0, 0, 301, - 0, 0, 286, 0, 302, 230, 0, 301, 0, 286, - 0, 286, 0, 42, 274, 0, 0, 0, 198, 169, - 167, 168, 166, 140, 191, 190, 286, 0, 44, 0, - 140, 142, 279, 280, 287, 0, 287, 288, 0, 0, - 0, 131, 289, 261, 288, 0, 0, 0, 0, 215, - 0, 0, 324, 314, 315, 295, 299, 0, 297, 0, - 323, 338, 0, 0, 340, 341, 0, 0, 0, 0, - 0, 301, 0, 0, 308, 0, 296, 303, 307, 304, - 211, 170, 0, 0, 0, 0, 247, 248, 161, 212, - 187, 185, 186, 183, 184, 208, 211, 210, 80, 77, - 236, 240, 0, 228, 201, 194, 0, 0, 92, 62, - 65, 0, 232, 0, 301, 226, 199, 272, 229, 64, - 224, 37, 220, 30, 41, 0, 283, 45, 221, 285, - 47, 33, 43, 283, 0, 288, 284, 137, 0, 278, - 124, 130, 129, 0, 135, 136, 0, 270, 326, 0, - 0, 317, 0, 316, 0, 333, 349, 300, 0, 0, - 0, 347, 298, 327, 339, 0, 305, 0, 318, 0, - 301, 329, 0, 346, 334, 0, 69, 68, 293, 0, - 248, 204, 84, 211, 0, 59, 0, 301, 301, 231, - 0, 170, 0, 286, 0, 46, 0, 140, 144, 141, - 281, 282, 125, 289, 132, 61, 325, 334, 295, 322, - 0, 0, 301, 321, 0, 0, 319, 306, 330, 295, - 295, 337, 206, 335, 67, 70, 213, 0, 86, 241, - 0, 0, 56, 0, 63, 234, 233, 90, 138, 222, - 34, 143, 283, 0, 328, 0, 350, 320, 331, 348, - 0, 0, 0, 211, 0, 85, 81, 0, 0, 0, - 133, 334, 342, 334, 336, 205, 82, 87, 58, 57, - 145, 332, 207, 293, 0, 83 + 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, 645, 663, 618, 646, 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, 611, 442, 346, 347, - 348, 350, 551, 546, 612, 613, 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 -552 +#define YYPACT_NINF -474 static const yytype_int16 yypact[] = { - -552, 44, 35, 38, -552, 199, -552, 37, -552, -552, - -552, 83, 22, -552, 66, 79, -552, -552, 60, -552, - 107, 89, 993, -552, 110, 454, 150, -552, 155, 179, - -552, 38, 182, -552, -552, -552, 199, 1760, -552, 199, - 42, -552, -552, 257, 42, 199, -552, 7, 125, 1606, - -552, 7, -552, 394, 407, 1606, 1606, 1606, 1606, 1606, - 1606, 1649, 1606, 1606, 1229, 137, -552, 506, -552, -552, - -552, -552, -552, 874, -552, -552, 140, 285, -552, 142, - -552, 154, 176, 7, 177, -552, -552, -552, 194, 90, - -552, -552, 65, -552, 186, -18, 250, 186, 186, 207, - -552, -552, -552, -552, 220, -552, -552, -552, -552, -552, - -552, -552, 228, 1768, 1768, 1768, -552, 229, -552, -552, - -552, -552, -552, -552, 86, 285, 1606, 1735, 245, 246, - 180, -552, 1606, -552, -552, 216, 1768, 2118, 264, -552, - 287, 436, 1606, 418, 1768, -552, -552, 452, -552, -552, - -552, 669, -552, -552, -552, -552, -552, -552, 1692, 1649, - 2118, 286, -552, 13, -552, 243, -552, -552, 261, 2118, - 280, -552, 455, -552, 772, 1606, 1606, 1606, 1606, -552, - 1606, 1606, 1606, -552, 1606, 1606, 1606, 1606, 1606, 1606, - 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, -552, 1288, - 549, 1606, -552, 1606, -552, -552, 1156, 1606, 1606, 1606, - -552, 1251, 199, 246, 317, 361, -552, 1944, 1944, -552, - 55, 322, -552, 1735, 369, 1768, -552, -552, -552, -552, - -552, -552, -552, 323, 199, -552, -552, 349, -552, 84, - 329, 1768, -552, 1735, -552, -552, -552, 310, 333, 1735, - 1156, -552, -552, 335, 121, 379, -552, 346, 348, -552, - -552, 341, -552, 16, 166, -552, -552, 352, -552, -552, - 413, 545, -552, -552, -552, 358, -552, -552, -552, 360, - 1606, 199, 363, 1793, -552, 356, 1768, 1768, -552, 373, - 1606, 371, 2118, 846, -552, 2142, 620, 620, 620, 620, - -552, 620, 620, 917, -552, 587, 587, 587, 587, -552, - -552, -552, -552, 1343, -552, -552, 36, 1398, -552, 2016, - 375, 1068, 1983, 1343, -552, -552, -552, -552, -552, -552, - 0, 264, 264, 2118, 1860, 387, 384, 398, -552, 403, - 466, 1944, 238, 34, -552, 417, -552, -552, -552, 1036, - -552, -6, 422, 199, 425, 431, 432, -552, -552, 439, - 1768, 440, -552, -552, -552, -552, 1453, 1508, 1606, -552, - -552, -552, 1735, -552, 1827, 442, 159, 349, 1606, 199, - 433, 445, 1735, -552, 554, 459, 1768, 85, 379, 413, - 379, 453, 448, 464, -552, -552, 199, 413, 473, 199, - 456, 199, 474, 264, -552, 1606, 1852, 1768, -552, 143, - 258, 259, 260, -552, -552, -552, 199, 485, 264, 1606, - -552, 2046, -552, -552, 471, 479, 480, 1649, 494, 497, - 498, -552, 1606, -552, -552, 510, 503, 1156, 1068, -552, - 1944, 530, -552, -552, -552, 199, 1885, 1944, 199, 1944, - -552, -552, 569, 305, -552, -552, 513, 505, 1944, 238, - 1944, 413, 199, 199, -552, 523, 509, -552, -552, -552, - 1827, -552, 1156, 1606, 1606, 525, -552, 1735, 533, -552, - -552, -552, -552, -552, -552, -552, 1827, -552, -552, -552, - -552, -552, 529, -552, -552, -552, 1649, 528, -552, -552, - -552, 535, -552, 537, 413, -552, -552, -552, -552, -552, - -552, -552, -552, -552, 264, 540, 1343, -552, -552, 539, - 772, -552, 264, 1343, 1551, 1343, -552, -552, 542, -552, - -552, -552, -552, 165, -552, -552, 237, -552, -552, 543, - 555, 550, 558, 565, 546, -552, -552, 567, 560, 1944, - 566, -552, 576, -552, -552, 595, -552, 1944, -552, 583, - 413, -552, 588, -552, 1919, 247, 2118, 2118, 1606, 586, - 1735, -552, -552, 1827, 80, -552, 1068, 413, 413, -552, - 156, 265, 581, 199, 591, 371, 585, -552, 2118, -552, - -552, -552, -552, 1606, -552, -552, -552, 1919, 199, -552, - 1885, 1944, 413, -552, 199, 305, -552, -552, -552, 199, - 199, -552, -552, -552, -552, -552, -552, 596, 641, -552, - 1606, 1606, -552, 1649, 599, -552, -552, -552, -552, -552, - -552, -552, 1343, 590, -552, 598, -552, -552, -552, -552, - 605, 606, 618, 1827, 74, -552, -552, 2070, 2094, 613, - -552, 1919, -552, 1919, -552, -552, -552, -552, -552, -552, - -552, -552, -552, 1606, 349, -552 + -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[] = { - -552, -552, -552, -552, -552, -552, -552, -15, -552, -552, - 651, -552, 2, -552, -552, 661, -552, -131, -29, 101, - -552, -134, -112, -552, 41, -552, -552, -552, 178, -366, - -552, -552, -552, -552, -552, -552, -139, -552, -552, -552, - -552, -552, -552, -552, -552, -552, -552, -552, -552, -552, - 674, 303, 307, -552, -187, 163, 164, -552, 327, -59, - 447, -16, 81, 414, 655, 376, 103, 20, -552, 458, - 273, 547, -552, -552, -552, -552, -36, -37, -31, -38, - -552, -552, -552, -552, -552, -32, 483, -468, -552, -552, - -552, -552, -552, -552, -552, -552, 315, -116, -238, 318, - -552, 336, -552, -213, -294, 677, -552, -242, -552, -63, - 6, 213, -552, -291, -236, -288, -194, -552, -111, -433, - -552, -552, -301, -552, -46, -552, 190, -552, 377, 269, - 378, 251, 109, 115, -551, -552, -432, 262, -552, 504, - -552, -552 + -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 -276 + number is the opposite. If YYTABLE_NINF, syntax error. */ +#define YYTABLE_NINF -277 static const yytype_int16 yytable[] = { - 120, 119, 161, 272, 174, 122, 121, 320, 376, 274, - 359, 488, 540, 103, 235, 240, 278, 323, 571, 259, - 235, 555, 385, 164, 163, 389, 391, 433, 428, 165, - 235, 393, 436, 107, 435, 141, 375, 457, 173, 400, - 380, 212, 133, 402, 4, 35, 634, 426, -182, 214, - 37, 216, 218, 417, 462, 138, 11, 117, 27, 112, - 5, 15, 438, 7, 47, 48, 9, 204, 439, 463, - 207, 51, -181, 206, 134, 388, 228, 228, 228, 9, - -182, 231, 231, 231, 19, 620, 18, 20, 502, 366, - 228, 205, 496, -266, 656, 231, 508, 497, -266, 228, - 661, 61, 662, 23, 231, 619, 458, 228, 222, 174, - 27, 427, 231, 64, 228, 10, 11, 109, 29, 231, - 109, 164, 163, 26, -235, 133, 131, 165, 10, 11, - 208, 9, 239, 117, 117, 117, 526, 228, 528, 381, - 209, 325, 231, 289, 537, 621, 622, 117, -266, 367, - 501, 33, 503, 498, -266, 623, 117, 134, 27, 209, - 561, 164, 163, 496, 117, 635, 28, 165, 497, 492, - 29, 117, 93, 640, 101, 655, 641, 642, -178, 9, - 10, 11, 105, -235, 379, 108, 228, -265, 228, -235, - 380, 231, -265, 231, 117, 536, 136, 210, 210, 171, - 210, 210, -178, 579, 228, 357, 228, 198, -153, 231, - -178, 231, 228, 331, 332, 102, 257, 231, 29, 390, - 202, 438, 266, 9, 627, 582, 516, 487, 10, 11, - 565, 593, 586, 523, 228, 203, -181, 594, 533, 231, - 254, 451, -265, 117, -214, 117, 410, 409, -265, 228, - 228, 412, 411, -180, 231, 231, 235, 475, 430, 608, - 11, 117, 9, 117, 569, 510, 235, 489, 259, 117, - 512, 219, 10, 11, 215, 255, 625, 626, -214, 164, - 163, 9, 220, 584, 256, 165, 403, 223, 452, 10, - 11, 117, 234, -176, -177, -175, 418, 453, 665, 438, - -179, 638, -180, 117, 249, 595, 117, 117, 451, 438, - -214, 10, 11, 250, 344, 614, 127, -176, -177, -175, - 344, 344, 262, 228, -179, -176, -177, -175, 231, 9, - 10, 11, -179, 286, 624, 228, 483, 481, 480, 209, - 231, 649, 484, 482, 199, 228, 285, 124, 200, 228, - 231, 130, 287, 520, 231, 452, 201, 617, 152, 153, - 154, 155, 156, 157, 354, 166, 167, 125, 529, 228, - 228, 125, 331, 332, 231, 231, 353, 360, 10, 11, - 117, 12, 358, 362, 364, 372, 226, 232, 233, 164, - 163, 368, 117, 374, 117, 165, 32, 378, 79, 633, - 632, 345, 117, 380, 32, 382, 117, 355, 356, 261, - 384, 514, 111, 386, 392, 111, 394, 276, 9, 128, - 399, 111, 401, 413, 282, 522, 117, 117, 405, 146, - 150, 9, 483, 481, 480, 416, 419, 344, 484, 482, - 228, 432, 9, 150, 344, 231, 445, 291, 483, 481, - 480, 446, 344, 143, 484, 482, 235, 615, 164, 163, - 254, 152, 156, 94, 165, 257, 147, 10, 11, 447, - 448, 95, 254, 266, 449, 96, 9, 507, 273, 9, - 10, 11, 459, 228, 464, 97, 98, 467, 231, 263, - 117, 10, 11, 468, 469, 264, 379, 117, 361, 470, - 471, 263, 486, 243, 265, 491, 117, 264, 509, 10, - 11, 111, 277, 504, 369, 288, 511, 111, 99, 146, - 520, 10, 11, 150, 664, 10, 11, 494, 10, 11, - 9, 450, 506, 228, 513, 483, 481, 480, 231, 461, - 117, 484, 482, 344, 397, 521, 525, 527, 150, 543, - 344, 235, 344, 37, 530, 434, 408, 531, 532, 414, - 415, 344, 112, 344, 529, 172, 340, 47, 48, 9, - 534, 535, 554, 9, 51, 556, 318, 557, 254, 10, - 11, 224, 79, 564, 463, 164, 163, 568, 349, 573, - 117, 165, 570, 117, 575, 577, 32, 578, 114, 243, - 581, 583, 592, 596, 225, 483, 481, 480, 317, -157, - 363, 484, 482, 255, 599, 597, 64, 598, 10, 11, - 396, 177, 10, 11, -158, 243, 79, 10, 11, 600, - 538, 185, 601, 408, 603, 189, 545, 548, 604, 553, - 194, 195, 196, 197, 605, 607, 616, 609, 558, 628, - 560, 630, 344, 631, 177, 644, 643, 150, 651, 495, - 344, 438, 650, 117, 185, 652, 653, 344, 189, 190, - 191, 192, 193, 194, 195, 196, 197, 37, 654, 226, - 515, 660, 106, 66, 629, 657, 112, 580, 590, 591, - 370, 47, 48, 9, 123, 404, 352, 79, 51, 91, - 344, 371, 493, 543, 344, 224, 284, 505, 476, 574, - 539, 443, 444, 639, 563, 636, 351, 0, 454, 0, - 0, 559, 114, 137, 0, 0, 0, 0, 225, 349, - 0, 0, 0, 0, 280, 160, 0, 0, 169, 602, - 64, 0, 10, 11, 281, 0, 0, 606, 243, 0, - 478, 0, 0, 0, 344, 490, 344, 0, 243, 0, - 111, 0, 0, 0, 0, 0, 0, 0, 111, 0, - 0, 0, 111, 0, 0, 146, 0, 150, 0, 0, - 37, 0, 0, 0, 0, 0, 0, 0, 0, 112, - 545, 637, 150, 585, 47, 48, 9, 0, 0, 0, - 0, 51, 0, 0, 0, 0, 0, 0, 224, 0, - 0, 0, 0, 79, 79, 0, 0, 0, 0, 0, - 0, 349, 542, 0, 549, 114, 0, 0, 0, 454, - 0, 225, 0, 0, 0, 454, 0, 290, 562, 349, - 0, 0, 0, 64, 0, 10, 11, 281, 79, 292, - 293, 294, 295, 243, 296, 297, 298, 0, 299, 300, - 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, - 311, 312, 0, 160, 0, 319, 0, 322, 175, -275, - 177, 137, 137, 333, 180, 181, 182, 0, 0, 184, - 185, 186, 187, 0, 189, 190, 191, 192, 193, 194, - 195, 196, 197, 0, 0, 0, 0, 176, 177, 0, - 178, 179, 180, 181, 182, 0, 183, 184, 185, 186, - 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, - 197, 0, 0, 0, 0, 0, 0, 0, 0, -275, - 0, 0, 0, 0, 0, 0, 243, 0, 0, -275, - 176, 177, 79, 0, 137, 180, 181, 182, 0, 150, - 184, 185, 186, 187, 137, 189, 190, 191, 192, 193, - 194, 195, 196, 197, 349, 0, 542, 0, 0, 0, - 549, 454, 0, 0, 0, 349, 349, 421, 0, 0, - 0, 160, 0, -2, 34, 0, 35, 421, 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, - 137, 137, 56, 57, 334, 58, 59, 460, 0, 60, - 0, 0, 61, 335, 0, -24, 0, 0, 336, 337, - 338, 0, 62, 63, 64, 339, 10, 11, 0, 324, - 0, 35, 340, 0, 36, -250, 37, 38, 39, 137, - -250, 40, 0, 41, 42, 112, 44, 45, 46, 341, - 47, 48, 9, 137, 0, 49, 50, 51, 52, 53, - 54, 160, 0, 0, 55, 0, 169, 343, 0, 0, - 11, 0, 0, 0, 0, 0, 0, 56, 57, 0, - 58, 59, 0, 0, 60, 0, 0, 61, 0, 0, - -250, 0, 0, 0, 0, 325, -250, 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, 0, 37, 38, 39, 0, 0, 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, -250, 0, - 0, 0, 0, 325, -250, 62, 63, 64, 0, 10, - 11, 0, 35, 0, 0, 0, 0, 37, 0, 0, - 168, 0, 0, 0, 0, 0, 112, 0, 0, 0, - 0, 47, 48, 9, 0, 0, 0, 0, 51, 334, - 0, 0, 0, 0, 0, 55, 0, 169, 335, 0, - 0, 0, 0, 336, 337, 338, 0, 0, 56, 57, - 339, 58, 59, 0, 0, 60, 0, 340, 61, 0, - 0, 35, 0, 0, 647, 648, 37, 160, 62, 63, - 64, 0, 10, 11, 341, 112, 421, 0, 0, 0, - 47, 48, 9, 0, 0, 0, 342, 51, 0, 0, - 0, 0, 343, 0, 158, 11, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 56, 57, 0, - 58, 159, 0, 0, 60, 0, 35, 61, 314, 0, - 0, 37, 0, 0, 0, 0, 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, 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, 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, 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, - 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, + 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, 170, 0, 62, 63, + 64, 0, 10, 11, 0, 0, 0, 0, 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, 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, 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, - 283, 58, 159, 0, 0, 60, 0, 0, 61, 112, + 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, + 64, 51, 10, 11, 0, 0, 0, 0, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 56, 57, 37, 58, 59, 241, 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, 37, 0, 0, 224, 0, 64, 0, 10, 11, - 112, 0, 0, 114, 0, 47, 48, 9, 0, 115, - 0, 114, 51, 0, 0, 0, 0, 225, 0, 406, - 0, 64, 0, 10, 11, 37, 0, 0, 0, 64, - 0, 10, 11, 0, 112, 0, 114, 0, 0, 47, - 48, 9, 407, 0, 0, 0, 51, 0, 0, 0, - 283, 0, 0, 224, 64, 0, 10, 11, 334, 112, - 0, 0, 0, 0, 47, 48, 9, 335, 0, 0, - 114, 51, 336, 337, 338, 0, 477, 0, 224, 339, - 0, 0, 0, 334, 0, 0, 440, 0, 64, 0, - 10, 11, 335, 0, 0, 114, 0, 336, 337, 541, - 0, 225, 0, 341, 339, 0, 0, 0, 0, 441, - 0, 340, 0, 64, 0, 10, 11, 334, 0, 0, - 0, 343, 0, 0, 11, 0, 335, 0, 341, 0, - 0, 336, 337, 338, 0, 0, 0, 0, 339, 0, - 0, 0, 334, 0, 0, 340, 343, 0, 10, 11, - 0, 335, 0, 0, 0, 0, 336, 337, 338, 0, - 0, 0, 341, 339, 0, 0, 0, 0, 610, 0, - 340, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 343, 0, 0, 11, 0, 0, 0, 341, 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, 0, 0, 0, 0, 343, 176, 177, 11, 178, - 0, 180, 181, 182, 0, 0, 184, 185, 186, 187, + 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, 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, + 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, - 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, 658, 184, 185, 186, - 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, - 197, 176, 177, 0, 178, 0, 180, 181, 182, 0, - 659, 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 + 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, 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[] = { - 37, 37, 61, 142, 67, 37, 37, 201, 250, 143, - 223, 377, 445, 28, 126, 126, 147, 204, 486, 135, - 132, 453, 258, 61, 61, 263, 264, 321, 316, 61, - 142, 267, 323, 31, 322, 51, 249, 3, 67, 275, - 24, 59, 35, 279, 0, 3, 597, 11, 35, 95, - 8, 97, 98, 289, 60, 49, 74, 37, 3, 17, - 25, 24, 62, 25, 22, 23, 24, 83, 68, 75, - 5, 29, 59, 89, 67, 59, 113, 114, 115, 24, - 67, 113, 114, 115, 62, 5, 3, 21, 389, 5, - 127, 1, 7, 7, 20, 127, 397, 12, 12, 136, - 651, 59, 653, 24, 136, 573, 72, 144, 106, 172, - 3, 75, 144, 71, 151, 73, 74, 36, 63, 151, - 39, 159, 159, 63, 3, 35, 45, 159, 73, 74, - 65, 24, 126, 113, 114, 115, 424, 174, 426, 255, - 75, 67, 174, 172, 438, 65, 66, 127, 62, 65, - 388, 62, 390, 68, 68, 75, 136, 67, 3, 75, - 461, 199, 199, 7, 144, 598, 59, 199, 12, 382, - 63, 151, 62, 605, 24, 643, 609, 610, 35, 24, - 73, 74, 3, 62, 63, 3, 223, 7, 225, 68, - 24, 223, 12, 225, 174, 437, 71, 94, 95, 62, - 97, 98, 59, 504, 241, 220, 243, 67, 66, 241, - 67, 243, 249, 207, 208, 60, 135, 249, 63, 53, - 66, 62, 141, 24, 68, 516, 413, 68, 73, 74, - 472, 66, 523, 420, 271, 59, 59, 72, 432, 271, - 24, 3, 62, 223, 1, 225, 283, 283, 68, 286, - 287, 283, 283, 59, 286, 287, 368, 368, 317, 560, - 74, 241, 24, 243, 477, 399, 378, 378, 384, 249, - 401, 64, 73, 74, 24, 59, 577, 578, 35, 317, - 317, 24, 62, 519, 68, 317, 280, 59, 50, 73, - 74, 271, 63, 35, 35, 35, 290, 59, 664, 62, - 35, 602, 59, 283, 59, 68, 286, 287, 3, 62, - 67, 73, 74, 67, 211, 68, 59, 59, 59, 59, - 217, 218, 35, 360, 59, 67, 67, 67, 360, 24, - 73, 74, 67, 72, 576, 372, 374, 374, 374, 75, - 372, 632, 374, 374, 59, 382, 60, 40, 63, 386, - 382, 44, 72, 416, 386, 50, 71, 570, 55, 56, - 57, 58, 59, 60, 3, 62, 63, 40, 427, 406, - 407, 44, 366, 367, 406, 407, 59, 8, 73, 74, - 360, 5, 60, 60, 35, 75, 113, 114, 115, 427, - 427, 62, 372, 60, 374, 427, 20, 62, 22, 593, - 587, 211, 382, 24, 28, 59, 386, 217, 218, 136, - 62, 405, 36, 72, 62, 39, 3, 144, 24, 43, - 62, 45, 62, 67, 151, 419, 406, 407, 65, 53, - 54, 24, 470, 470, 470, 62, 65, 334, 470, 470, - 477, 66, 24, 67, 341, 477, 59, 174, 486, 486, - 486, 67, 349, 59, 486, 486, 568, 568, 496, 496, - 24, 158, 159, 9, 496, 384, 59, 73, 74, 71, - 67, 17, 24, 392, 8, 21, 24, 396, 60, 24, - 73, 74, 65, 520, 62, 31, 32, 62, 520, 53, - 470, 73, 74, 62, 62, 59, 63, 477, 225, 60, - 60, 53, 60, 127, 68, 60, 486, 59, 35, 73, - 74, 135, 60, 60, 241, 60, 60, 141, 64, 143, - 583, 73, 74, 147, 663, 73, 74, 68, 73, 74, - 24, 341, 68, 570, 60, 573, 573, 573, 570, 349, - 520, 573, 573, 440, 271, 60, 75, 68, 172, 446, - 447, 663, 449, 8, 60, 75, 283, 60, 60, 286, - 287, 458, 17, 460, 623, 59, 36, 22, 23, 24, - 60, 68, 3, 24, 29, 62, 200, 72, 24, 73, - 74, 36, 206, 60, 75, 623, 623, 62, 212, 60, - 570, 623, 59, 573, 66, 60, 220, 60, 53, 223, - 60, 62, 60, 60, 59, 643, 643, 643, 59, 59, - 234, 643, 643, 59, 68, 60, 71, 59, 73, 74, - 75, 34, 73, 74, 59, 249, 250, 73, 74, 62, - 440, 44, 72, 360, 68, 48, 446, 447, 62, 449, - 53, 54, 55, 56, 49, 62, 60, 59, 458, 68, - 460, 60, 549, 68, 34, 14, 60, 281, 60, 386, - 557, 62, 72, 643, 44, 60, 60, 564, 48, 49, - 50, 51, 52, 53, 54, 55, 56, 8, 60, 406, - 407, 68, 31, 22, 583, 644, 17, 509, 525, 525, - 243, 22, 23, 24, 39, 281, 213, 321, 29, 22, - 597, 243, 384, 600, 601, 36, 159, 392, 372, 496, - 441, 334, 334, 604, 463, 600, 212, -1, 342, -1, - -1, 459, 53, 49, -1, -1, -1, -1, 59, 353, - -1, -1, -1, -1, 65, 61, -1, -1, 64, 549, - 71, -1, 73, 74, 75, -1, -1, 557, 372, -1, - 374, -1, -1, -1, 651, 379, 653, -1, 382, -1, - 384, -1, -1, -1, -1, -1, -1, -1, 392, -1, - -1, -1, 396, -1, -1, 399, -1, 401, -1, -1, - 8, -1, -1, -1, -1, -1, -1, -1, -1, 17, - 600, 601, 416, 520, 22, 23, 24, -1, -1, -1, - -1, 29, -1, -1, -1, -1, -1, -1, 36, -1, - -1, -1, -1, 437, 438, -1, -1, -1, -1, -1, - -1, 445, 446, -1, 448, 53, -1, -1, -1, 453, - -1, 59, -1, -1, -1, 459, -1, 65, 462, 463, - -1, -1, -1, 71, -1, 73, 74, 75, 472, 175, - 176, 177, 178, 477, 180, 181, 182, -1, 184, 185, - 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, - 196, 197, -1, 199, -1, 201, -1, 203, 4, 5, - 34, 207, 208, 209, 38, 39, 40, -1, -1, 43, - 44, 45, 46, -1, 48, 49, 50, 51, 52, 53, - 54, 55, 56, -1, -1, -1, -1, 33, 34, -1, - 36, 37, 38, 39, 40, -1, 42, 43, 44, 45, - 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, - 56, -1, -1, -1, -1, -1, -1, -1, -1, 65, - -1, -1, -1, -1, -1, -1, 570, -1, -1, 75, - 33, 34, 576, -1, 280, 38, 39, 40, -1, 583, - 43, 44, 45, 46, 290, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 598, -1, 600, -1, -1, -1, - 604, 605, -1, -1, -1, 609, 610, 313, -1, -1, - -1, 317, -1, 0, 1, -1, 3, 323, -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, - 366, 367, 49, 50, 8, 52, 53, 11, -1, 56, - -1, -1, 59, 17, -1, 62, -1, -1, 22, 23, - 24, -1, 69, 70, 71, 29, 73, 74, -1, 1, - -1, 3, 36, -1, 6, 7, 8, 9, 10, 405, - 12, 13, -1, 15, 16, 17, 18, 19, 20, 53, - 22, 23, 24, 419, -1, 27, 28, 29, 30, 31, - 32, 427, -1, -1, 36, -1, 432, 71, -1, -1, - 74, -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, -1, -1, 473, 474, -1, - -1, -1, -1, -1, -1, -1, -1, 1, -1, 3, - -1, -1, 6, -1, 8, 9, 10, -1, -1, 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, 3, -1, -1, -1, -1, 8, -1, -1, - 11, -1, -1, -1, -1, -1, 17, -1, -1, -1, - -1, 22, 23, 24, -1, -1, -1, -1, 29, 8, - -1, -1, -1, -1, -1, 36, -1, 593, 17, -1, - -1, -1, -1, 22, 23, 24, -1, -1, 49, 50, - 29, 52, 53, -1, -1, 56, -1, 36, 59, -1, - -1, 3, -1, -1, 620, 621, 8, 623, 69, 70, - 71, -1, 73, 74, 53, 17, 632, -1, -1, -1, - 22, 23, 24, -1, -1, -1, 65, 29, -1, -1, - -1, -1, 71, -1, 36, 74, -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, + 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, 594, -1, 69, 70, + 71, -1, 73, 74, -1, -1, -1, -1, -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, 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, 8, 52, 53, 11, -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, 8, -1, -1, 36, -1, 71, -1, 73, 74, - 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, 8, -1, -1, 36, -1, 71, -1, - 73, 74, 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, -1, 74, -1, 17, -1, 53, -1, - -1, 22, 23, 24, -1, -1, -1, -1, 29, -1, - -1, -1, 8, -1, -1, 36, 71, -1, 73, 74, - -1, 17, -1, -1, -1, -1, 22, 23, 24, -1, - -1, -1, 53, 29, -1, -1, -1, -1, 59, -1, - 36, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 71, -1, -1, 74, -1, -1, -1, 53, -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, -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, + -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, -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, -1, -1, - 38, 39, 40, -1, -1, 43, 44, 45, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, 56 + 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, -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 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing @@ -1499,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, 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 + 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) @@ -1570,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) @@ -1582,7 +1629,6 @@ do \ { \ yychar = (Token); \ yylval = (Value); \ - yytoken = YYTRANSLATE (yychar); \ YYPOPSTACK (1); \ goto yybackup; \ } \ @@ -1624,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 @@ -1740,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"); } @@ -1784,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"); } } @@ -1825,7 +1865,6 @@ int yydebug; # define YYMAXDEPTH 10000 #endif - #if YYERROR_VERBOSE @@ -1928,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. | @@ -2068,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); @@ -2087,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. | `----------*/ @@ -2125,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 + /* Number of tokens to shift before error messages enabled. */ + int yyerrstatus; - /* Three stacks and their tools: - `yyss': related to states, - `yyvs': related to semantic values, - `yyls': related to locations. + /* The stacks and their tools: + `yyss': related to states. + `yyvs': related to semantic values. - Refer to the stacks thru separate pointers, to allow yyoverflow - to reallocate them elsewhere. */ + Refer to the stacks thru separate pointers, to allow yyoverflow + to reallocate them elsewhere. */ - /* The state stack. */ - yytype_int16 yyssa[YYINITDEPTH]; - yytype_int16 *yyss = yyssa; - yytype_int16 *yyssp; + /* The state stack. */ + yytype_int16 yyssa[YYINITDEPTH]; + yytype_int16 *yyss; + yytype_int16 *yyssp; - /* The semantic value stack. */ - YYSTYPE yyvsa[YYINITDEPTH]; - YYSTYPE *yyvs = yyvsa; - YYSTYPE *yyvsp; - - - -#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) + /* The semantic value stack. */ + YYSTYPE yyvsa[YYINITDEPTH]; + YYSTYPE *yyvs; + YYSTYPE *yyvsp; - YYSIZE_T yystacksize = YYINITDEPTH; + YYSIZE_T yystacksize; + 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; @@ -2213,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 @@ -2221,7 +2283,6 @@ yyparse () yyoverflow (YY_("memory exhausted"), &yyss1, yysize * sizeof (*yyssp), &yyvs1, yysize * sizeof (*yyvsp), - &yystacksize); yyss = yyss1; @@ -2244,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); @@ -2257,7 +2317,6 @@ yyparse () yyssp = yyss + yysize - 1; yyvsp = yyvs + yysize - 1; - YYDPRINTF ((stderr, "Stack size increased to %lu\n", (unsigned long int) yystacksize)); @@ -2267,6 +2326,9 @@ yyparse () YYDPRINTF ((stderr, "Entering state %d\n", yystate)); + if (yystate == YYFINAL) + YYACCEPT; + goto yybackup; /*-----------. @@ -2275,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: ")); @@ -2310,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; @@ -2369,6 +2427,8 @@ yyreduce: switch (yyn) { case 2: + +/* Line 1806 of yacc.c */ #line 128 "go.y" { xtop = concat(xtop, (yyvsp[(4) - (4)].list)); @@ -2376,6 +2436,8 @@ yyreduce: break; case 3: + +/* Line 1806 of yacc.c */ #line 134 "go.y" { prevlineno = lineno; @@ -2385,6 +2447,8 @@ yyreduce: break; case 4: + +/* Line 1806 of yacc.c */ #line 140 "go.y" { mkpackage((yyvsp[(2) - (3)].sym)->name); @@ -2392,6 +2456,8 @@ yyreduce: break; case 5: + +/* Line 1806 of yacc.c */ #line 150 "go.y" { importpkg = runtimepkg; @@ -2405,6 +2471,8 @@ yyreduce: break; case 6: + +/* Line 1806 of yacc.c */ #line 161 "go.y" { importpkg = nil; @@ -2412,6 +2480,8 @@ yyreduce: break; case 12: + +/* Line 1806 of yacc.c */ #line 175 "go.y" { Pkg *ipkg; @@ -2452,6 +2522,8 @@ yyreduce: break; case 13: + +/* Line 1806 of yacc.c */ #line 212 "go.y" { // When an invalid import path is passed to importfile, @@ -2464,6 +2536,8 @@ yyreduce: break; case 16: + +/* Line 1806 of yacc.c */ #line 227 "go.y" { // import with original name @@ -2474,6 +2548,8 @@ yyreduce: break; case 17: + +/* Line 1806 of yacc.c */ #line 234 "go.y" { // import with given name @@ -2484,6 +2560,8 @@ yyreduce: break; case 18: + +/* Line 1806 of yacc.c */ #line 241 "go.y" { // import into my name space @@ -2494,6 +2572,8 @@ yyreduce: break; case 19: + +/* Line 1806 of yacc.c */ #line 250 "go.y" { if(importpkg->name == nil) { @@ -2510,6 +2590,8 @@ yyreduce: break; case 21: + +/* Line 1806 of yacc.c */ #line 265 "go.y" { if(strcmp((yyvsp[(1) - (1)].sym)->name, "safe") == 0) @@ -2518,6 +2600,8 @@ yyreduce: break; case 22: + +/* Line 1806 of yacc.c */ #line 271 "go.y" { defercheckwidth(); @@ -2525,6 +2609,8 @@ yyreduce: break; case 23: + +/* Line 1806 of yacc.c */ #line 275 "go.y" { resumecheckwidth(); @@ -2533,6 +2619,8 @@ yyreduce: break; case 24: + +/* Line 1806 of yacc.c */ #line 284 "go.y" { yyerror("empty top-level declaration"); @@ -2541,6 +2629,8 @@ yyreduce: break; case 26: + +/* Line 1806 of yacc.c */ #line 290 "go.y" { (yyval.list) = list1((yyvsp[(1) - (1)].node)); @@ -2548,6 +2638,8 @@ yyreduce: break; case 27: + +/* Line 1806 of yacc.c */ #line 294 "go.y" { yyerror("non-declaration statement outside function body"); @@ -2556,6 +2648,8 @@ yyreduce: break; case 28: + +/* Line 1806 of yacc.c */ #line 299 "go.y" { (yyval.list) = nil; @@ -2563,6 +2657,8 @@ yyreduce: break; case 29: + +/* Line 1806 of yacc.c */ #line 305 "go.y" { (yyval.list) = (yyvsp[(2) - (2)].list); @@ -2570,6 +2666,8 @@ yyreduce: break; case 30: + +/* Line 1806 of yacc.c */ #line 309 "go.y" { (yyval.list) = (yyvsp[(3) - (5)].list); @@ -2577,6 +2675,8 @@ yyreduce: break; case 31: + +/* Line 1806 of yacc.c */ #line 313 "go.y" { (yyval.list) = nil; @@ -2584,6 +2684,8 @@ yyreduce: break; case 32: + +/* Line 1806 of yacc.c */ #line 317 "go.y" { (yyval.list) = (yyvsp[(2) - (2)].list); @@ -2593,6 +2695,8 @@ yyreduce: break; case 33: + +/* Line 1806 of yacc.c */ #line 323 "go.y" { (yyval.list) = (yyvsp[(3) - (5)].list); @@ -2602,6 +2706,8 @@ yyreduce: break; case 34: + +/* Line 1806 of yacc.c */ #line 329 "go.y" { (yyval.list) = concat((yyvsp[(3) - (7)].list), (yyvsp[(5) - (7)].list)); @@ -2611,6 +2717,8 @@ yyreduce: break; case 35: + +/* Line 1806 of yacc.c */ #line 335 "go.y" { (yyval.list) = nil; @@ -2619,6 +2727,8 @@ yyreduce: break; case 36: + +/* Line 1806 of yacc.c */ #line 340 "go.y" { (yyval.list) = list1((yyvsp[(2) - (2)].node)); @@ -2626,6 +2736,8 @@ yyreduce: break; case 37: + +/* Line 1806 of yacc.c */ #line 344 "go.y" { (yyval.list) = (yyvsp[(3) - (5)].list); @@ -2633,6 +2745,8 @@ yyreduce: break; case 38: + +/* Line 1806 of yacc.c */ #line 348 "go.y" { (yyval.list) = nil; @@ -2640,6 +2754,8 @@ yyreduce: break; case 39: + +/* Line 1806 of yacc.c */ #line 354 "go.y" { iota = 0; @@ -2647,6 +2763,8 @@ yyreduce: break; case 40: + +/* Line 1806 of yacc.c */ #line 360 "go.y" { (yyval.list) = variter((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node), nil); @@ -2654,6 +2772,8 @@ yyreduce: break; case 41: + +/* Line 1806 of yacc.c */ #line 364 "go.y" { (yyval.list) = variter((yyvsp[(1) - (4)].list), (yyvsp[(2) - (4)].node), (yyvsp[(4) - (4)].list)); @@ -2661,6 +2781,8 @@ yyreduce: break; case 42: + +/* Line 1806 of yacc.c */ #line 368 "go.y" { (yyval.list) = variter((yyvsp[(1) - (3)].list), nil, (yyvsp[(3) - (3)].list)); @@ -2668,6 +2790,8 @@ yyreduce: break; case 43: + +/* Line 1806 of yacc.c */ #line 374 "go.y" { (yyval.list) = constiter((yyvsp[(1) - (4)].list), (yyvsp[(2) - (4)].node), (yyvsp[(4) - (4)].list)); @@ -2675,6 +2799,8 @@ yyreduce: break; case 44: + +/* Line 1806 of yacc.c */ #line 378 "go.y" { (yyval.list) = constiter((yyvsp[(1) - (3)].list), N, (yyvsp[(3) - (3)].list)); @@ -2682,6 +2808,8 @@ yyreduce: break; case 46: + +/* Line 1806 of yacc.c */ #line 385 "go.y" { (yyval.list) = constiter((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node), nil); @@ -2689,6 +2817,8 @@ yyreduce: break; case 47: + +/* Line 1806 of yacc.c */ #line 389 "go.y" { (yyval.list) = constiter((yyvsp[(1) - (1)].list), N, nil); @@ -2696,6 +2826,8 @@ yyreduce: break; case 48: + +/* Line 1806 of yacc.c */ #line 395 "go.y" { // different from dclname because the name @@ -2706,6 +2838,8 @@ yyreduce: break; case 49: + +/* Line 1806 of yacc.c */ #line 404 "go.y" { (yyval.node) = typedcl1((yyvsp[(1) - (2)].node), (yyvsp[(2) - (2)].node), 1); @@ -2713,6 +2847,8 @@ yyreduce: break; case 50: + +/* Line 1806 of yacc.c */ #line 410 "go.y" { (yyval.node) = (yyvsp[(1) - (1)].node); @@ -2734,6 +2870,8 @@ yyreduce: break; case 51: + +/* Line 1806 of yacc.c */ #line 428 "go.y" { (yyval.node) = nod(OASOP, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); @@ -2742,6 +2880,8 @@ yyreduce: break; case 52: + +/* Line 1806 of yacc.c */ #line 433 "go.y" { if((yyvsp[(1) - (3)].list)->next == nil && (yyvsp[(3) - (3)].list)->next == nil) { @@ -2757,6 +2897,8 @@ yyreduce: break; case 53: + +/* Line 1806 of yacc.c */ #line 445 "go.y" { if((yyvsp[(3) - (3)].list)->n->op == OTYPESW) { @@ -2776,6 +2918,8 @@ yyreduce: break; case 54: + +/* Line 1806 of yacc.c */ #line 461 "go.y" { (yyval.node) = nod(OASOP, (yyvsp[(1) - (2)].node), nodintconst(1)); @@ -2784,6 +2928,8 @@ yyreduce: break; case 55: + +/* Line 1806 of yacc.c */ #line 466 "go.y" { (yyval.node) = nod(OASOP, (yyvsp[(1) - (2)].node), nodintconst(1)); @@ -2792,6 +2938,8 @@ yyreduce: break; case 56: + +/* Line 1806 of yacc.c */ #line 473 "go.y" { Node *n, *nn; @@ -2815,6 +2963,8 @@ yyreduce: break; case 57: + +/* Line 1806 of yacc.c */ #line 493 "go.y" { Node *n; @@ -2836,6 +2986,8 @@ yyreduce: break; case 58: + +/* Line 1806 of yacc.c */ #line 511 "go.y" { // will be converted to OCASE @@ -2848,6 +3000,8 @@ yyreduce: break; case 59: + +/* Line 1806 of yacc.c */ #line 520 "go.y" { Node *n, *nn; @@ -2867,6 +3021,8 @@ yyreduce: break; case 60: + +/* Line 1806 of yacc.c */ #line 538 "go.y" { markdcl(); @@ -2874,6 +3030,8 @@ yyreduce: break; case 61: + +/* Line 1806 of yacc.c */ #line 542 "go.y" { if((yyvsp[(3) - (4)].list) == nil) @@ -2885,6 +3043,8 @@ yyreduce: break; case 62: + +/* Line 1806 of yacc.c */ #line 552 "go.y" { // If the last token read by the lexer was consumed @@ -2898,6 +3058,8 @@ yyreduce: break; case 63: + +/* Line 1806 of yacc.c */ #line 562 "go.y" { int last; @@ -2920,6 +3082,8 @@ yyreduce: break; case 64: + +/* Line 1806 of yacc.c */ #line 582 "go.y" { (yyval.list) = nil; @@ -2927,6 +3091,8 @@ yyreduce: break; case 65: + +/* Line 1806 of yacc.c */ #line 586 "go.y" { (yyval.list) = list((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node)); @@ -2934,6 +3100,8 @@ yyreduce: break; case 66: + +/* Line 1806 of yacc.c */ #line 592 "go.y" { markdcl(); @@ -2941,6 +3109,8 @@ yyreduce: break; case 67: + +/* Line 1806 of yacc.c */ #line 596 "go.y" { (yyval.list) = (yyvsp[(3) - (4)].list); @@ -2949,6 +3119,8 @@ yyreduce: break; case 68: + +/* Line 1806 of yacc.c */ #line 603 "go.y" { (yyval.node) = nod(ORANGE, N, (yyvsp[(4) - (4)].node)); @@ -2958,6 +3130,8 @@ yyreduce: break; case 69: + +/* Line 1806 of yacc.c */ #line 609 "go.y" { (yyval.node) = nod(ORANGE, N, (yyvsp[(4) - (4)].node)); @@ -2968,6 +3142,8 @@ yyreduce: break; case 70: + +/* Line 1806 of yacc.c */ #line 618 "go.y" { // init ; test ; incr @@ -2982,6 +3158,8 @@ yyreduce: break; case 71: + +/* Line 1806 of yacc.c */ #line 629 "go.y" { // normal test @@ -2991,6 +3169,8 @@ yyreduce: break; case 73: + +/* Line 1806 of yacc.c */ #line 638 "go.y" { (yyval.node) = (yyvsp[(1) - (2)].node); @@ -2999,6 +3179,8 @@ yyreduce: break; case 74: + +/* Line 1806 of yacc.c */ #line 645 "go.y" { markdcl(); @@ -3006,6 +3188,8 @@ yyreduce: break; case 75: + +/* Line 1806 of yacc.c */ #line 649 "go.y" { (yyval.node) = (yyvsp[(3) - (3)].node); @@ -3014,6 +3198,8 @@ yyreduce: break; case 76: + +/* Line 1806 of yacc.c */ #line 656 "go.y" { // test @@ -3023,6 +3209,8 @@ yyreduce: break; case 77: + +/* Line 1806 of yacc.c */ #line 662 "go.y" { // init ; test @@ -3034,6 +3222,8 @@ yyreduce: break; case 78: + +/* Line 1806 of yacc.c */ #line 673 "go.y" { markdcl(); @@ -3041,6 +3231,8 @@ yyreduce: break; case 79: + +/* Line 1806 of yacc.c */ #line 677 "go.y" { if((yyvsp[(3) - (3)].node)->ntest == N) @@ -3049,6 +3241,8 @@ yyreduce: break; case 80: + +/* Line 1806 of yacc.c */ #line 682 "go.y" { (yyvsp[(3) - (5)].node)->nbody = (yyvsp[(5) - (5)].list); @@ -3056,6 +3250,8 @@ yyreduce: break; case 81: + +/* Line 1806 of yacc.c */ #line 686 "go.y" { Node *n; @@ -3074,6 +3270,8 @@ yyreduce: break; case 82: + +/* Line 1806 of yacc.c */ #line 703 "go.y" { markdcl(); @@ -3081,6 +3279,8 @@ yyreduce: break; case 83: + +/* Line 1806 of yacc.c */ #line 707 "go.y" { if((yyvsp[(4) - (5)].node)->ntest == N) @@ -3091,6 +3291,8 @@ yyreduce: break; case 84: + +/* Line 1806 of yacc.c */ #line 715 "go.y" { (yyval.list) = nil; @@ -3098,6 +3300,8 @@ yyreduce: break; case 85: + +/* Line 1806 of yacc.c */ #line 719 "go.y" { (yyval.list) = concat((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].list)); @@ -3105,6 +3309,8 @@ yyreduce: break; case 86: + +/* Line 1806 of yacc.c */ #line 724 "go.y" { (yyval.list) = nil; @@ -3112,6 +3318,8 @@ yyreduce: break; case 87: + +/* Line 1806 of yacc.c */ #line 728 "go.y" { NodeList *node; @@ -3124,6 +3332,8 @@ yyreduce: break; case 88: + +/* Line 1806 of yacc.c */ #line 739 "go.y" { markdcl(); @@ -3131,6 +3341,8 @@ yyreduce: break; case 89: + +/* Line 1806 of yacc.c */ #line 743 "go.y" { Node *n; @@ -3142,6 +3354,8 @@ yyreduce: break; case 90: + +/* Line 1806 of yacc.c */ #line 751 "go.y" { (yyval.node) = (yyvsp[(3) - (7)].node); @@ -3153,6 +3367,8 @@ yyreduce: break; case 91: + +/* Line 1806 of yacc.c */ #line 761 "go.y" { typesw = nod(OXXX, typesw, N); @@ -3160,6 +3376,8 @@ yyreduce: break; case 92: + +/* Line 1806 of yacc.c */ #line 765 "go.y" { (yyval.node) = nod(OSELECT, N, N); @@ -3170,6 +3388,8 @@ yyreduce: break; case 94: + +/* Line 1806 of yacc.c */ #line 778 "go.y" { (yyval.node) = nod(OOROR, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); @@ -3177,6 +3397,8 @@ yyreduce: break; case 95: + +/* Line 1806 of yacc.c */ #line 782 "go.y" { (yyval.node) = nod(OANDAND, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); @@ -3184,6 +3406,8 @@ yyreduce: break; case 96: + +/* Line 1806 of yacc.c */ #line 786 "go.y" { (yyval.node) = nod(OEQ, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); @@ -3191,6 +3415,8 @@ yyreduce: break; case 97: + +/* Line 1806 of yacc.c */ #line 790 "go.y" { (yyval.node) = nod(ONE, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); @@ -3198,6 +3424,8 @@ yyreduce: break; case 98: + +/* Line 1806 of yacc.c */ #line 794 "go.y" { (yyval.node) = nod(OLT, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); @@ -3205,6 +3433,8 @@ yyreduce: break; case 99: + +/* Line 1806 of yacc.c */ #line 798 "go.y" { (yyval.node) = nod(OLE, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); @@ -3212,6 +3442,8 @@ yyreduce: break; case 100: + +/* Line 1806 of yacc.c */ #line 802 "go.y" { (yyval.node) = nod(OGE, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); @@ -3219,6 +3451,8 @@ yyreduce: break; case 101: + +/* Line 1806 of yacc.c */ #line 806 "go.y" { (yyval.node) = nod(OGT, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); @@ -3226,6 +3460,8 @@ yyreduce: break; case 102: + +/* Line 1806 of yacc.c */ #line 810 "go.y" { (yyval.node) = nod(OADD, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); @@ -3233,6 +3469,8 @@ yyreduce: break; case 103: + +/* Line 1806 of yacc.c */ #line 814 "go.y" { (yyval.node) = nod(OSUB, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); @@ -3240,6 +3478,8 @@ yyreduce: break; case 104: + +/* Line 1806 of yacc.c */ #line 818 "go.y" { (yyval.node) = nod(OOR, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); @@ -3247,6 +3487,8 @@ yyreduce: break; case 105: + +/* Line 1806 of yacc.c */ #line 822 "go.y" { (yyval.node) = nod(OXOR, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); @@ -3254,6 +3496,8 @@ yyreduce: break; case 106: + +/* Line 1806 of yacc.c */ #line 826 "go.y" { (yyval.node) = nod(OMUL, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); @@ -3261,6 +3505,8 @@ yyreduce: break; case 107: + +/* Line 1806 of yacc.c */ #line 830 "go.y" { (yyval.node) = nod(ODIV, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); @@ -3268,6 +3514,8 @@ yyreduce: break; case 108: + +/* Line 1806 of yacc.c */ #line 834 "go.y" { (yyval.node) = nod(OMOD, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); @@ -3275,6 +3523,8 @@ yyreduce: break; case 109: + +/* Line 1806 of yacc.c */ #line 838 "go.y" { (yyval.node) = nod(OAND, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); @@ -3282,6 +3532,8 @@ yyreduce: break; case 110: + +/* Line 1806 of yacc.c */ #line 842 "go.y" { (yyval.node) = nod(OANDNOT, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); @@ -3289,6 +3541,8 @@ yyreduce: break; case 111: + +/* Line 1806 of yacc.c */ #line 846 "go.y" { (yyval.node) = nod(OLSH, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); @@ -3296,6 +3550,8 @@ yyreduce: break; case 112: + +/* Line 1806 of yacc.c */ #line 850 "go.y" { (yyval.node) = nod(ORSH, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); @@ -3303,6 +3559,8 @@ yyreduce: break; case 113: + +/* Line 1806 of yacc.c */ #line 855 "go.y" { (yyval.node) = nod(OSEND, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); @@ -3310,6 +3568,8 @@ yyreduce: break; case 115: + +/* Line 1806 of yacc.c */ #line 862 "go.y" { (yyval.node) = nod(OIND, (yyvsp[(2) - (2)].node), N); @@ -3317,6 +3577,8 @@ yyreduce: break; case 116: + +/* Line 1806 of yacc.c */ #line 866 "go.y" { if((yyvsp[(2) - (2)].node)->op == OCOMPLIT) { @@ -3331,6 +3593,8 @@ yyreduce: break; case 117: + +/* Line 1806 of yacc.c */ #line 877 "go.y" { (yyval.node) = nod(OPLUS, (yyvsp[(2) - (2)].node), N); @@ -3338,6 +3602,8 @@ yyreduce: break; case 118: + +/* Line 1806 of yacc.c */ #line 881 "go.y" { (yyval.node) = nod(OMINUS, (yyvsp[(2) - (2)].node), N); @@ -3345,6 +3611,8 @@ yyreduce: break; case 119: + +/* Line 1806 of yacc.c */ #line 885 "go.y" { (yyval.node) = nod(ONOT, (yyvsp[(2) - (2)].node), N); @@ -3352,6 +3620,8 @@ yyreduce: break; case 120: + +/* Line 1806 of yacc.c */ #line 889 "go.y" { yyerror("the bitwise complement operator is ^"); @@ -3360,6 +3630,8 @@ yyreduce: break; case 121: + +/* Line 1806 of yacc.c */ #line 894 "go.y" { (yyval.node) = nod(OCOM, (yyvsp[(2) - (2)].node), N); @@ -3367,6 +3639,8 @@ yyreduce: break; case 122: + +/* Line 1806 of yacc.c */ #line 898 "go.y" { (yyval.node) = nod(ORECV, (yyvsp[(2) - (2)].node), N); @@ -3374,6 +3648,8 @@ yyreduce: break; case 123: + +/* Line 1806 of yacc.c */ #line 908 "go.y" { (yyval.node) = nod(OCALL, (yyvsp[(1) - (3)].node), N); @@ -3381,6 +3657,8 @@ yyreduce: break; case 124: + +/* Line 1806 of yacc.c */ #line 912 "go.y" { (yyval.node) = nod(OCALL, (yyvsp[(1) - (5)].node), N); @@ -3389,6 +3667,8 @@ yyreduce: break; case 125: + +/* Line 1806 of yacc.c */ #line 917 "go.y" { (yyval.node) = nod(OCALL, (yyvsp[(1) - (6)].node), N); @@ -3398,6 +3678,8 @@ yyreduce: break; case 126: + +/* Line 1806 of yacc.c */ #line 925 "go.y" { (yyval.node) = nodlit((yyvsp[(1) - (1)].val)); @@ -3405,6 +3687,8 @@ yyreduce: break; case 128: + +/* Line 1806 of yacc.c */ #line 930 "go.y" { if((yyvsp[(1) - (3)].node)->op == OPACK) { @@ -3419,6 +3703,8 @@ yyreduce: break; case 129: + +/* Line 1806 of yacc.c */ #line 941 "go.y" { (yyval.node) = nod(ODOTTYPE, (yyvsp[(1) - (5)].node), (yyvsp[(4) - (5)].node)); @@ -3426,6 +3712,8 @@ yyreduce: break; case 130: + +/* Line 1806 of yacc.c */ #line 945 "go.y" { (yyval.node) = nod(OTYPESW, N, (yyvsp[(1) - (5)].node)); @@ -3433,6 +3721,8 @@ yyreduce: break; case 131: + +/* Line 1806 of yacc.c */ #line 949 "go.y" { (yyval.node) = nod(OINDEX, (yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].node)); @@ -3440,6 +3730,8 @@ yyreduce: break; case 132: + +/* 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))); @@ -3447,6 +3739,8 @@ yyreduce: break; case 133: + +/* Line 1806 of yacc.c */ #line 957 "go.y" { if((yyvsp[(5) - (8)].node) == N) @@ -3458,6 +3752,8 @@ yyreduce: break; case 135: + +/* Line 1806 of yacc.c */ #line 966 "go.y" { // conversion @@ -3467,6 +3763,8 @@ yyreduce: break; case 136: + +/* Line 1806 of yacc.c */ #line 972 "go.y" { (yyval.node) = (yyvsp[(3) - (5)].node); @@ -3477,6 +3775,8 @@ yyreduce: break; case 137: + +/* Line 1806 of yacc.c */ #line 979 "go.y" { (yyval.node) = (yyvsp[(3) - (5)].node); @@ -3486,6 +3786,8 @@ yyreduce: break; case 138: + +/* Line 1806 of yacc.c */ #line 985 "go.y" { yyerror("cannot parenthesize type in composite literal"); @@ -3496,6 +3798,8 @@ yyreduce: break; case 140: + +/* Line 1806 of yacc.c */ #line 994 "go.y" { // composite expression. @@ -3505,6 +3809,8 @@ yyreduce: break; case 141: + +/* Line 1806 of yacc.c */ #line 1002 "go.y" { (yyval.node) = nod(OKEY, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); @@ -3512,6 +3818,8 @@ yyreduce: break; case 142: + +/* Line 1806 of yacc.c */ #line 1008 "go.y" { // These nodes do not carry line numbers. @@ -3532,6 +3840,8 @@ yyreduce: break; case 143: + +/* Line 1806 of yacc.c */ #line 1025 "go.y" { (yyval.node) = (yyvsp[(2) - (4)].node); @@ -3540,6 +3850,8 @@ yyreduce: break; case 145: + +/* Line 1806 of yacc.c */ #line 1033 "go.y" { (yyval.node) = (yyvsp[(2) - (4)].node); @@ -3548,6 +3860,8 @@ yyreduce: break; case 147: + +/* Line 1806 of yacc.c */ #line 1041 "go.y" { (yyval.node) = (yyvsp[(2) - (3)].node); @@ -3568,6 +3882,8 @@ yyreduce: break; case 151: + +/* Line 1806 of yacc.c */ #line 1067 "go.y" { (yyval.i) = LBODY; @@ -3575,6 +3891,8 @@ yyreduce: break; case 152: + +/* Line 1806 of yacc.c */ #line 1071 "go.y" { (yyval.i) = '{'; @@ -3582,6 +3900,8 @@ yyreduce: break; case 153: + +/* Line 1806 of yacc.c */ #line 1082 "go.y" { if((yyvsp[(1) - (1)].sym) == S) @@ -3592,6 +3912,8 @@ yyreduce: break; case 154: + +/* Line 1806 of yacc.c */ #line 1091 "go.y" { (yyval.node) = dclname((yyvsp[(1) - (1)].sym)); @@ -3599,6 +3921,8 @@ yyreduce: break; case 155: + +/* Line 1806 of yacc.c */ #line 1096 "go.y" { (yyval.node) = N; @@ -3606,6 +3930,8 @@ yyreduce: break; case 157: + +/* Line 1806 of yacc.c */ #line 1103 "go.y" { (yyval.sym) = (yyvsp[(1) - (1)].sym); @@ -3616,6 +3942,8 @@ yyreduce: break; case 159: + +/* Line 1806 of yacc.c */ #line 1111 "go.y" { (yyval.sym) = S; @@ -3623,6 +3951,8 @@ yyreduce: break; case 160: + +/* Line 1806 of yacc.c */ #line 1117 "go.y" { Pkg *p; @@ -3639,7 +3969,27 @@ yyreduce: break; case 161: -#line 1132 "go.y" + +/* 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) @@ -3647,44 +3997,56 @@ yyreduce: } break; - case 163: -#line 1152 "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 164: -#line 1157 "go.y" + case 165: + +/* Line 1806 of yacc.c */ +#line 1170 "go.y" { (yyval.node) = nod(ODDD, (yyvsp[(2) - (2)].node), N); } break; - case 170: -#line 1168 "go.y" + case 171: + +/* Line 1806 of yacc.c */ +#line 1181 "go.y" { (yyval.node) = nod(OTPAREN, (yyvsp[(2) - (3)].node), N); } break; - case 174: -#line 1177 "go.y" + case 175: + +/* Line 1806 of yacc.c */ +#line 1190 "go.y" { (yyval.node) = nod(OIND, (yyvsp[(2) - (2)].node), N); } break; - case 179: -#line 1187 "go.y" + case 180: + +/* Line 1806 of yacc.c */ +#line 1200 "go.y" { (yyval.node) = nod(OTPAREN, (yyvsp[(2) - (3)].node), N); } break; - case 189: -#line 1208 "go.y" + case 190: + +/* Line 1806 of yacc.c */ +#line 1221 "go.y" { if((yyvsp[(1) - (3)].node)->op == OPACK) { Sym *s; @@ -3697,61 +4059,77 @@ yyreduce: } break; - case 190: -#line 1221 "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 191: -#line 1225 "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 192: -#line 1230 "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 193: -#line 1235 "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 194: -#line 1240 "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 197: -#line 1248 "go.y" + case 198: + +/* Line 1806 of yacc.c */ +#line 1261 "go.y" { (yyval.node) = nod(OIND, (yyvsp[(2) - (2)].node), N); } break; - case 198: -#line 1254 "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 199: -#line 1261 "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); @@ -3759,16 +4137,20 @@ yyreduce: } break; - case 200: -#line 1267 "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 201: -#line 1274 "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); @@ -3776,16 +4158,20 @@ yyreduce: } break; - case 202: -#line 1280 "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 203: -#line 1291 "go.y" + case 204: + +/* Line 1806 of yacc.c */ +#line 1304 "go.y" { (yyval.node) = (yyvsp[(2) - (3)].node); if((yyval.node) == N) @@ -3799,8 +4185,10 @@ yyreduce: } break; - case 204: -#line 1305 "go.y" + case 205: + +/* Line 1806 of yacc.c */ +#line 1318 "go.y" { Node *t; @@ -3831,8 +4219,10 @@ yyreduce: } break; - case 205: -#line 1334 "go.y" + case 206: + +/* Line 1806 of yacc.c */ +#line 1347 "go.y" { Node *rcvr, *t; @@ -3872,8 +4262,10 @@ yyreduce: } break; - case 206: -#line 1374 "go.y" + case 207: + +/* Line 1806 of yacc.c */ +#line 1387 "go.y" { Sym *s; Type *t; @@ -3900,8 +4292,10 @@ yyreduce: } break; - case 207: -#line 1399 "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)); @@ -3919,8 +4313,10 @@ yyreduce: } break; - case 208: -#line 1417 "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); @@ -3929,15 +4325,19 @@ yyreduce: } break; - case 209: -#line 1425 "go.y" + case 210: + +/* Line 1806 of yacc.c */ +#line 1438 "go.y" { (yyval.list) = nil; } break; - case 210: -#line 1429 "go.y" + case 211: + +/* Line 1806 of yacc.c */ +#line 1442 "go.y" { (yyval.list) = (yyvsp[(2) - (3)].list); if((yyval.list) == nil) @@ -3945,59 +4345,75 @@ yyreduce: } break; - case 211: -#line 1437 "go.y" + case 212: + +/* Line 1806 of yacc.c */ +#line 1450 "go.y" { (yyval.list) = nil; } break; - case 212: -#line 1441 "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 213: -#line 1445 "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 214: -#line 1452 "go.y" + case 215: + +/* Line 1806 of yacc.c */ +#line 1465 "go.y" { closurehdr((yyvsp[(1) - (1)].node)); } break; - case 215: -#line 1458 "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 216: -#line 1463 "go.y" + case 217: + +/* Line 1806 of yacc.c */ +#line 1476 "go.y" { (yyval.node) = closurebody(nil); } break; - case 217: -#line 1474 "go.y" + case 218: + +/* Line 1806 of yacc.c */ +#line 1487 "go.y" { (yyval.list) = nil; } break; - case 218: -#line 1478 "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) @@ -4007,57 +4423,73 @@ yyreduce: } break; - case 220: -#line 1489 "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 222: -#line 1496 "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 223: -#line 1502 "go.y" + case 224: + +/* Line 1806 of yacc.c */ +#line 1515 "go.y" { (yyval.list) = list1((yyvsp[(1) - (1)].node)); } break; - case 224: -#line 1506 "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 226: -#line 1513 "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 227: -#line 1519 "go.y" + case 228: + +/* Line 1806 of yacc.c */ +#line 1532 "go.y" { (yyval.list) = list1((yyvsp[(1) - (1)].node)); } break; - case 228: -#line 1523 "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 229: -#line 1529 "go.y" + case 230: + +/* Line 1806 of yacc.c */ +#line 1542 "go.y" { NodeList *l; @@ -4068,7 +4500,7 @@ yyreduce: 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); @@ -4082,16 +4514,20 @@ yyreduce: } break; - case 230: -#line 1552 "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 231: -#line 1557 "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)); @@ -4099,8 +4535,10 @@ yyreduce: } break; - case 232: -#line 1563 "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); @@ -4108,8 +4546,10 @@ yyreduce: } break; - case 233: -#line 1569 "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); @@ -4118,8 +4558,10 @@ yyreduce: } break; - case 234: -#line 1576 "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); @@ -4128,8 +4570,10 @@ yyreduce: } break; - case 235: -#line 1585 "go.y" + case 236: + +/* Line 1806 of yacc.c */ +#line 1598 "go.y" { Node *n; @@ -4140,8 +4584,10 @@ yyreduce: } break; - case 236: -#line 1594 "go.y" + case 237: + +/* Line 1806 of yacc.c */ +#line 1607 "go.y" { Pkg *pkg; @@ -4156,38 +4602,48 @@ yyreduce: } break; - case 237: -#line 1609 "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 238: -#line 1615 "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 239: -#line 1620 "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 240: -#line 1624 "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 241: -#line 1631 "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); @@ -4197,8 +4653,10 @@ yyreduce: } break; - case 243: -#line 1645 "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); @@ -4206,8 +4664,10 @@ yyreduce: } break; - case 244: -#line 1651 "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); @@ -4215,65 +4675,83 @@ yyreduce: } break; - case 246: -#line 1660 "go.y" + case 247: + +/* Line 1806 of yacc.c */ +#line 1673 "go.y" { (yyval.list) = list1((yyvsp[(1) - (1)].node)); } break; - case 247: -#line 1664 "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 248: -#line 1669 "go.y" + case 249: + +/* Line 1806 of yacc.c */ +#line 1682 "go.y" { (yyval.list) = nil; } break; - case 249: -#line 1673 "go.y" + case 250: + +/* Line 1806 of yacc.c */ +#line 1686 "go.y" { (yyval.list) = (yyvsp[(1) - (2)].list); } break; - case 250: -#line 1681 "go.y" + case 251: + +/* Line 1806 of yacc.c */ +#line 1694 "go.y" { (yyval.node) = N; } break; - case 252: -#line 1686 "go.y" + case 253: + +/* Line 1806 of yacc.c */ +#line 1699 "go.y" { (yyval.node) = liststmt((yyvsp[(1) - (1)].list)); } break; - case 254: -#line 1691 "go.y" + case 255: + +/* Line 1806 of yacc.c */ +#line 1704 "go.y" { (yyval.node) = N; } break; - case 260: -#line 1702 "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 261: -#line 1707 "go.y" + case 262: + +/* Line 1806 of yacc.c */ +#line 1720 "go.y" { NodeList *l; @@ -4285,52 +4763,66 @@ yyreduce: } break; - case 262: -#line 1717 "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 263: -#line 1722 "go.y" + case 264: + +/* Line 1806 of yacc.c */ +#line 1735 "go.y" { (yyval.node) = nod(OBREAK, (yyvsp[(2) - (2)].node), N); } break; - case 264: -#line 1726 "go.y" + case 265: + +/* Line 1806 of yacc.c */ +#line 1739 "go.y" { (yyval.node) = nod(OCONTINUE, (yyvsp[(2) - (2)].node), N); } break; - case 265: -#line 1730 "go.y" + case 266: + +/* Line 1806 of yacc.c */ +#line 1743 "go.y" { (yyval.node) = nod(OPROC, (yyvsp[(2) - (2)].node), N); } break; - case 266: -#line 1734 "go.y" + case 267: + +/* Line 1806 of yacc.c */ +#line 1747 "go.y" { (yyval.node) = nod(ODEFER, (yyvsp[(2) - (2)].node), N); } break; - case 267: -#line 1738 "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 268: -#line 1743 "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); @@ -4349,8 +4841,10 @@ yyreduce: } break; - case 269: -#line 1762 "go.y" + case 270: + +/* Line 1806 of yacc.c */ +#line 1775 "go.y" { (yyval.list) = nil; if((yyvsp[(1) - (1)].node) != N) @@ -4358,8 +4852,10 @@ yyreduce: } break; - case 270: -#line 1768 "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) @@ -4367,190 +4863,244 @@ yyreduce: } break; - case 271: -#line 1776 "go.y" + case 272: + +/* Line 1806 of yacc.c */ +#line 1789 "go.y" { (yyval.list) = list1((yyvsp[(1) - (1)].node)); } break; - case 272: -#line 1780 "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 273: -#line 1786 "go.y" + case 274: + +/* Line 1806 of yacc.c */ +#line 1799 "go.y" { (yyval.list) = list1((yyvsp[(1) - (1)].node)); } break; - case 274: -#line 1790 "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 275: -#line 1796 "go.y" + case 276: + +/* Line 1806 of yacc.c */ +#line 1809 "go.y" { (yyval.list) = list1((yyvsp[(1) - (1)].node)); } break; - case 276: -#line 1800 "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 277: -#line 1806 "go.y" + case 278: + +/* Line 1806 of yacc.c */ +#line 1819 "go.y" { (yyval.list) = list1((yyvsp[(1) - (1)].node)); } break; - case 278: -#line 1810 "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 279: -#line 1819 "go.y" + case 280: + +/* Line 1806 of yacc.c */ +#line 1832 "go.y" { (yyval.list) = list1((yyvsp[(1) - (1)].node)); } break; - case 280: -#line 1823 "go.y" + case 281: + +/* Line 1806 of yacc.c */ +#line 1836 "go.y" { (yyval.list) = list1((yyvsp[(1) - (1)].node)); } break; - case 281: -#line 1827 "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 282: -#line 1831 "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 283: -#line 1836 "go.y" + case 284: + +/* Line 1806 of yacc.c */ +#line 1849 "go.y" { (yyval.list) = nil; } break; - case 284: -#line 1840 "go.y" + case 285: + +/* Line 1806 of yacc.c */ +#line 1853 "go.y" { (yyval.list) = (yyvsp[(1) - (2)].list); } break; - case 289: -#line 1854 "go.y" + case 290: + +/* Line 1806 of yacc.c */ +#line 1867 "go.y" { (yyval.node) = N; } break; - case 291: -#line 1860 "go.y" + case 292: + +/* Line 1806 of yacc.c */ +#line 1873 "go.y" { (yyval.list) = nil; } break; - case 293: -#line 1866 "go.y" + case 294: + +/* Line 1806 of yacc.c */ +#line 1879 "go.y" { (yyval.node) = N; } break; - case 295: -#line 1872 "go.y" + case 296: + +/* Line 1806 of yacc.c */ +#line 1885 "go.y" { (yyval.list) = nil; } break; - case 297: -#line 1878 "go.y" + case 298: + +/* Line 1806 of yacc.c */ +#line 1891 "go.y" { (yyval.list) = nil; } break; - case 299: -#line 1884 "go.y" + case 300: + +/* Line 1806 of yacc.c */ +#line 1897 "go.y" { (yyval.list) = nil; } break; - case 301: -#line 1890 "go.y" + case 302: + +/* Line 1806 of yacc.c */ +#line 1903 "go.y" { (yyval.val).ctype = CTxxx; } break; - case 303: -#line 1900 "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 304: -#line 1904 "go.y" + case 305: + +/* Line 1806 of yacc.c */ +#line 1917 "go.y" { importvar((yyvsp[(2) - (4)].sym), (yyvsp[(3) - (4)].type)); } break; - case 305: -#line 1908 "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 306: -#line 1912 "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 307: -#line 1916 "go.y" + case 308: + +/* Line 1806 of yacc.c */ +#line 1929 "go.y" { importtype((yyvsp[(2) - (4)].type), (yyvsp[(3) - (4)].type)); } break; - case 308: -#line 1920 "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 @@ -4570,31 +5120,39 @@ yyreduce: } break; - case 309: -#line 1940 "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 310: -#line 1947 "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 316: -#line 1967 "go.y" + case 317: + +/* Line 1806 of yacc.c */ +#line 1980 "go.y" { (yyval.type) = pkgtype((yyvsp[(1) - (1)].sym)); } break; - case 317: -#line 1971 "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); @@ -4606,50 +5164,64 @@ yyreduce: } break; - case 318: -#line 1981 "go.y" + case 319: + +/* Line 1806 of yacc.c */ +#line 1994 "go.y" { (yyval.type) = aindex(N, (yyvsp[(3) - (3)].type)); } break; - case 319: -#line 1985 "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 320: -#line 1989 "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 321: -#line 1993 "go.y" + case 322: + +/* Line 1806 of yacc.c */ +#line 2006 "go.y" { (yyval.type) = tostruct((yyvsp[(3) - (4)].list)); } break; - case 322: -#line 1997 "go.y" + case 323: + +/* Line 1806 of yacc.c */ +#line 2010 "go.y" { (yyval.type) = tointerface((yyvsp[(3) - (4)].list)); } break; - case 323: -#line 2001 "go.y" + case 324: + +/* Line 1806 of yacc.c */ +#line 2014 "go.y" { (yyval.type) = ptrto((yyvsp[(2) - (2)].type)); } break; - case 324: -#line 2005 "go.y" + case 325: + +/* Line 1806 of yacc.c */ +#line 2018 "go.y" { (yyval.type) = typ(TCHAN); (yyval.type)->type = (yyvsp[(2) - (2)].type); @@ -4657,8 +5229,10 @@ yyreduce: } break; - case 325: -#line 2011 "go.y" + case 326: + +/* Line 1806 of yacc.c */ +#line 2024 "go.y" { (yyval.type) = typ(TCHAN); (yyval.type)->type = (yyvsp[(3) - (4)].type); @@ -4666,8 +5240,10 @@ yyreduce: } break; - case 326: -#line 2017 "go.y" + case 327: + +/* Line 1806 of yacc.c */ +#line 2030 "go.y" { (yyval.type) = typ(TCHAN); (yyval.type)->type = (yyvsp[(3) - (3)].type); @@ -4675,8 +5251,10 @@ yyreduce: } break; - case 327: -#line 2025 "go.y" + case 328: + +/* Line 1806 of yacc.c */ +#line 2038 "go.y" { (yyval.type) = typ(TCHAN); (yyval.type)->type = (yyvsp[(3) - (3)].type); @@ -4684,15 +5262,19 @@ yyreduce: } break; - case 328: -#line 2033 "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 329: -#line 2039 "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)) @@ -4701,8 +5283,10 @@ yyreduce: } break; - case 330: -#line 2046 "go.y" + case 331: + +/* Line 1806 of yacc.c */ +#line 2059 "go.y" { Type *t; @@ -4718,69 +5302,89 @@ yyreduce: } break; - case 331: -#line 2062 "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 332: -#line 2080 "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 333: -#line 2084 "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 334: -#line 2089 "go.y" + case 335: + +/* Line 1806 of yacc.c */ +#line 2106 "go.y" { (yyval.list) = nil; } break; - case 336: -#line 2096 "go.y" + case 337: + +/* Line 1806 of yacc.c */ +#line 2113 "go.y" { (yyval.list) = (yyvsp[(2) - (3)].list); } break; - case 337: -#line 2100 "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 338: -#line 2110 "go.y" + case 339: + +/* Line 1806 of yacc.c */ +#line 2127 "go.y" { (yyval.node) = nodlit((yyvsp[(1) - (1)].val)); } break; - case 339: -#line 2114 "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){ @@ -4797,8 +5401,10 @@ yyreduce: } break; - case 340: -#line 2129 "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) @@ -4806,8 +5412,10 @@ yyreduce: } break; - case 342: -#line 2138 "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); @@ -4820,53 +5428,77 @@ yyreduce: } break; - case 345: -#line 2154 "go.y" + case 346: + +/* Line 1806 of yacc.c */ +#line 2171 "go.y" { (yyval.list) = list1((yyvsp[(1) - (1)].node)); } break; - case 346: -#line 2158 "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 347: -#line 2164 "go.y" + case 348: + +/* Line 1806 of yacc.c */ +#line 2181 "go.y" { (yyval.list) = list1((yyvsp[(1) - (1)].node)); } break; - case 348: -#line 2168 "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 349: -#line 2174 "go.y" + case 350: + +/* Line 1806 of yacc.c */ +#line 2191 "go.y" { (yyval.list) = list1((yyvsp[(1) - (1)].node)); } break; - case 350: -#line 2178 "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 4869 "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); @@ -4875,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. */ @@ -4895,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) { @@ -4902,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 } @@ -4940,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) @@ -4957,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; @@ -4991,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) @@ -5014,9 +5648,6 @@ yyerrlab1: YY_STACK_PRINT (yyss, yyssp); } - if (yyn == YYFINAL) - YYACCEPT; - *++yyvsp = yylval; @@ -5041,7 +5672,7 @@ yyabortlab: yyresult = 1; goto yyreturn; -#ifndef yyoverflow +#if !defined(yyoverflow) || YYERROR_VERBOSE /*-------------------------------------------------. | yyexhaustedlab -- memory exhaustion comes here. | `-------------------------------------------------*/ @@ -5052,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); @@ -5078,7 +5714,9 @@ yyreturn: } -#line 2182 "go.y" + +/* Line 2067 of yacc.c */ +#line 2199 "go.y" static void diff --git a/src/cmd/gc/y.tab.h b/src/cmd/gc/y.tab.h index d01fbe198..6eeb831b2 100644 --- a/src/cmd/gc/y.tab.h +++ b/src/cmd/gc/y.tab.h @@ -1,24 +1,21 @@ -/* A Bison parser, made by GNU Bison 2.3. */ +/* A Bison parser, made by GNU Bison 2.5. */ -/* Skeleton interface 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 interface 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,10 +26,11 @@ 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. */ + /* Tokens. */ #ifndef YYTOKENTYPE # define YYTOKENTYPE @@ -146,22 +144,28 @@ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED typedef union YYSTYPE -#line 28 "go.y" { + +/* Line 2068 of yacc.c */ +#line 28 "go.y" + Node* node; NodeList* list; Type* type; Sym* sym; struct Val val; int i; -} -/* Line 1529 of yacc.c. */ -#line 160 "y.tab.h" - YYSTYPE; + + + +/* Line 2068 of yacc.c */ +#line 163 "y.tab.h" +} YYSTYPE; +# define YYSTYPE_IS_TRIVIAL 1 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 -# define YYSTYPE_IS_TRIVIAL 1 #endif extern YYSTYPE yylval; + diff --git a/src/cmd/gc/yerr.h b/src/cmd/gc/yerr.h index 1b3bac17b..1526d8231 100644 --- a/src/cmd/gc/yerr.h +++ b/src/cmd/gc/yerr.h @@ -14,28 +14,28 @@ static struct { // is converted by bisonerrors into the yystate and yychar caused // by that token list. - 221, ',', + 222, ',', "unexpected comma during import block", 32, ';', "missing import path; require quoted string", - 377, ';', + 378, ';', "missing { after if clause", - 398, ';', + 399, ';', "missing { after switch clause", - 237, ';', + 238, ';', "missing { after for clause", - 475, LBODY, + 476, LBODY, "missing { after for clause", 22, '{', "unexpected semicolon or newline before {", - 144, ';', + 145, ';', "unexpected semicolon or newline in type declaration", 37, '}', @@ -47,33 +47,33 @@ static struct { 37, ',', "unexpected comma in channel type", - 438, LELSE, + 439, LELSE, "unexpected semicolon or newline before else", - 257, ',', + 258, ',', "name list not allowed in interface type", - 237, LVAR, + 238, LVAR, "var declaration not allowed in for initializer", 65, '{', "unexpected { at end of statement", - 376, '{', + 377, '{', "unexpected { at end of statement", - 125, ';', + 126, ';', "argument to go/defer must be function call", - 425, ';', + 426, ';', "need trailing comma before newline in composite literal", - 436, ';', + 437, ';', "need trailing comma before newline in composite literal", - 112, LNAME, + 113, LNAME, "nested func not allowed", - 644, ';', + 645, ';', "else must be followed by if or statement block" }; diff --git a/test/fixedbugs/issue6513.dir/a.go b/test/fixedbugs/issue6513.dir/a.go new file mode 100644 index 000000000..da90ca377 --- /dev/null +++ b/test/fixedbugs/issue6513.dir/a.go @@ -0,0 +1,7 @@ +// Copyright 2013 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package a + +type T struct{ int } diff --git a/test/fixedbugs/issue6513.dir/b.go b/test/fixedbugs/issue6513.dir/b.go new file mode 100644 index 000000000..3b35b2d32 --- /dev/null +++ b/test/fixedbugs/issue6513.dir/b.go @@ -0,0 +1,9 @@ +// Copyright 2013 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package b + +import "./a" + +type U struct{ a.T } diff --git a/test/fixedbugs/issue6513.dir/main.go b/test/fixedbugs/issue6513.dir/main.go new file mode 100644 index 000000000..f09b72748 --- /dev/null +++ b/test/fixedbugs/issue6513.dir/main.go @@ -0,0 +1,16 @@ +// Copyright 2013 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package main + +import ( + "./a" + "./b" +) + +func main() { + var t a.T + var u b.U + _, _ = t, u +} diff --git a/test/fixedbugs/issue6513.go b/test/fixedbugs/issue6513.go new file mode 100644 index 000000000..b32e0c561 --- /dev/null +++ b/test/fixedbugs/issue6513.go @@ -0,0 +1,10 @@ +// compiledir + +// Copyright 2013 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Issue 6513: embedded builtins may get incorrect qualified +// field name during import. + +package ignored |