Index: src/cmd/gc/y.tab.c |
=================================================================== |
--- a/src/cmd/gc/y.tab.c |
+++ b/src/cmd/gc/y.tab.c |
@@ -1,8 +1,8 @@ |
-/* A Bison parser, made by GNU Bison 2.5. */ |
+/* A Bison parser, made by GNU Bison 2.7. */ |
/* Bison implementation for Yacc-like parsers in C |
- Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc. |
+ Copyright (C) 1984, 1989-1990, 2000-2012 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 |
@@ -44,7 +44,7 @@ |
#define YYBISON 1 |
/* Bison version. */ |
-#define YYBISON_VERSION "2.5" |
+#define YYBISON_VERSION "2.7" |
/* Skeleton name. */ |
#define YYSKELETON_NAME "yacc.c" |
@@ -58,14 +58,11 @@ |
/* Pull parsers. */ |
#define YYPULL 1 |
-/* Using locations. */ |
-#define YYLSP_NEEDED 0 |
/* Copy the first part of user declarations. */ |
- |
-/* Line 268 of yacc.c */ |
+/* Line 371 of yacc.c */ |
#line 20 "go.y" |
#include <u.h> |
@@ -75,14 +72,16 @@ |
static void fixlbrace(int); |
- |
-/* Line 268 of yacc.c */ |
-#line 81 "y.tab.c" |
- |
-/* Enabling traces. */ |
-#ifndef YYDEBUG |
-# define YYDEBUG 0 |
-#endif |
+/* Line 371 of yacc.c */ |
+#line 77 "y.tab.c" |
+ |
+# ifndef YY_NULL |
+# if defined __cplusplus && 201103L <= __cplusplus |
+# define YY_NULL nullptr |
+# else |
+# define YY_NULL 0 |
+# endif |
+# endif |
/* Enabling verbose error messages. */ |
#ifdef YYERROR_VERBOSE |
@@ -92,11 +91,17 @@ |
# define YYERROR_VERBOSE 1 |
#endif |
-/* Enabling the token table. */ |
-#ifndef YYTOKEN_TABLE |
-# define YYTOKEN_TABLE 0 |
+/* In a future release of Bison, this section will be replaced |
+ by #include "y.tab.h". */ |
+#ifndef YY_YY_Y_TAB_H_INCLUDED |
+# define YY_YY_Y_TAB_H_INCLUDED |
+/* Enabling traces. */ |
+#ifndef YYDEBUG |
+# define YYDEBUG 0 |
#endif |
- |
+#if YYDEBUG |
+extern int yydebug; |
+#endif |
/* Tokens. */ |
#ifndef YYTOKENTYPE |
@@ -208,37 +213,52 @@ |
- |
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED |
typedef union YYSTYPE |
{ |
- |
-/* Line 293 of yacc.c */ |
+/* Line 387 of yacc.c */ |
#line 28 "go.y" |
Node* node; |
NodeList* list; |
+ Field* field; |
+ FieldList* flist; |
Type* type; |
Sym* sym; |
struct Val val; |
int i; |
- |
-/* Line 293 of yacc.c */ |
-#line 230 "y.tab.c" |
+/* Line 387 of yacc.c */ |
+#line 234 "y.tab.c" |
} YYSTYPE; |
# define YYSTYPE_IS_TRIVIAL 1 |
# define yystype YYSTYPE /* obsolescent; will be withdrawn */ |
# define YYSTYPE_IS_DECLARED 1 |
#endif |
+extern YYSTYPE yylval; |
+ |
+#ifdef YYPARSE_PARAM |
+#if defined __STDC__ || defined __cplusplus |
+int yyparse (void *YYPARSE_PARAM); |
+#else |
+int yyparse (); |
+#endif |
+#else /* ! YYPARSE_PARAM */ |
+#if defined __STDC__ || defined __cplusplus |
+int yyparse (void); |
+#else |
+int yyparse (); |
+#endif |
+#endif /* ! YYPARSE_PARAM */ |
+ |
+#endif /* !YY_YY_Y_TAB_H_INCLUDED */ |
/* Copy the second part of user declarations. */ |
- |
-/* Line 343 of yacc.c */ |
-#line 242 "y.tab.c" |
+/* Line 390 of yacc.c */ |
+#line 262 "y.tab.c" |
#ifdef short |
# undef short |
@@ -291,24 +311,24 @@ |
# if defined YYENABLE_NLS && YYENABLE_NLS |
# if ENABLE_NLS |
# include <libintl.h> /* INFRINGES ON USER NAME SPACE */ |
-# define YY_(msgid) dgettext ("bison-runtime", msgid) |
+# define YY_(Msgid) dgettext ("bison-runtime", Msgid) |
# endif |
# endif |
# ifndef YY_ |
-# define YY_(msgid) msgid |
+# define YY_(Msgid) Msgid |
# endif |
#endif |
/* Suppress unused-variable warnings by "using" E. */ |
#if ! defined lint || defined __GNUC__ |
-# define YYUSE(e) ((void) (e)) |
+# define YYUSE(E) ((void) (E)) |
#else |
-# define YYUSE(e) /* empty */ |
+# define YYUSE(E) /* empty */ |
#endif |
/* Identity function, used to suppress warnings about constant conditions. */ |
#ifndef lint |
-# define YYID(n) (n) |
+# define YYID(N) (N) |
#else |
#if (defined __STDC__ || defined __C99__FUNC__ \ |
|| defined __cplusplus || defined _MSC_VER) |
@@ -344,6 +364,7 @@ |
# 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 */ |
+ /* Use EXIT_SUCCESS as a witness for stdlib.h. */ |
# ifndef EXIT_SUCCESS |
# define EXIT_SUCCESS 0 |
# endif |
@@ -435,20 +456,20 @@ |
#endif |
#if defined YYCOPY_NEEDED && YYCOPY_NEEDED |
-/* Copy COUNT objects from FROM to TO. The source and destination do |
+/* Copy COUNT objects from SRC to DST. The source and destination do |
not overlap. */ |
# ifndef YYCOPY |
# if defined __GNUC__ && 1 < __GNUC__ |
-# define YYCOPY(To, From, Count) \ |
- __builtin_memcpy (To, From, (Count) * sizeof (*(From))) |
+# define YYCOPY(Dst, Src, Count) \ |
+ __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src))) |
# else |
-# define YYCOPY(To, From, Count) \ |
- do \ |
- { \ |
- YYSIZE_T yyi; \ |
- for (yyi = 0; yyi < (Count); yyi++) \ |
- (To)[yyi] = (From)[yyi]; \ |
- } \ |
+# define YYCOPY(Dst, Src, Count) \ |
+ do \ |
+ { \ |
+ YYSIZE_T yyi; \ |
+ for (yyi = 0; yyi < (Count); yyi++) \ |
+ (Dst)[yyi] = (Src)[yyi]; \ |
+ } \ |
while (YYID (0)) |
# endif |
# endif |
@@ -673,45 +694,45 @@ |
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */ |
static const yytype_uint16 yyrline[] = |
{ |
- 0, 124, 124, 133, 140, 151, 151, 166, 167, 170, |
- 171, 172, 175, 208, 219, 220, 223, 230, 237, 246, |
- 259, 260, 267, 267, 280, 284, 285, 289, 294, 300, |
- 304, 308, 312, 318, 324, 330, 335, 339, 343, 349, |
- 355, 359, 363, 369, 373, 379, 380, 384, 390, 399, |
- 405, 409, 414, 426, 442, 447, 454, 474, 492, 501, |
- 520, 519, 531, 530, 561, 564, 571, 570, 581, 587, |
- 596, 607, 613, 616, 624, 623, 634, 640, 652, 656, |
- 661, 651, 682, 681, 694, 697, 703, 706, 718, 722, |
- 717, 740, 739, 755, 756, 760, 764, 768, 772, 776, |
- 780, 784, 788, 792, 796, 800, 804, 808, 812, 816, |
- 820, 824, 828, 833, 839, 840, 844, 855, 859, 863, |
- 867, 872, 876, 886, 890, 895, 903, 907, 908, 919, |
- 923, 927, 931, 935, 936, 942, 949, 955, 962, 965, |
- 972, 978, 994, 1001, 1002, 1009, 1010, 1029, 1030, 1033, |
- 1036, 1040, 1051, 1060, 1066, 1069, 1072, 1079, 1080, 1086, |
- 1101, 1109, 1121, 1126, 1132, 1133, 1134, 1135, 1136, 1137, |
- 1143, 1144, 1145, 1146, 1152, 1153, 1154, 1155, 1156, 1162, |
- 1163, 1166, 1169, 1170, 1171, 1172, 1173, 1176, 1177, 1190, |
- 1194, 1199, 1204, 1209, 1213, 1214, 1217, 1223, 1230, 1236, |
- 1243, 1249, 1260, 1271, 1300, 1340, 1365, 1383, 1392, 1395, |
- 1403, 1407, 1411, 1418, 1424, 1429, 1441, 1444, 1453, 1454, |
- 1460, 1461, 1467, 1471, 1477, 1478, 1484, 1488, 1494, 1517, |
- 1522, 1528, 1534, 1541, 1550, 1559, 1574, 1580, 1585, 1589, |
- 1596, 1609, 1610, 1616, 1622, 1625, 1629, 1635, 1638, 1647, |
- 1650, 1651, 1655, 1656, 1662, 1663, 1664, 1665, 1666, 1668, |
- 1667, 1682, 1687, 1691, 1695, 1699, 1703, 1708, 1727, 1733, |
- 1741, 1745, 1751, 1755, 1761, 1765, 1771, 1775, 1784, 1788, |
- 1792, 1796, 1802, 1805, 1813, 1814, 1816, 1817, 1820, 1823, |
- 1826, 1829, 1832, 1835, 1838, 1841, 1844, 1847, 1850, 1853, |
- 1856, 1859, 1865, 1869, 1873, 1877, 1881, 1885, 1905, 1912, |
- 1923, 1924, 1925, 1928, 1929, 1932, 1936, 1946, 1950, 1954, |
- 1958, 1962, 1966, 1970, 1976, 1982, 1990, 1998, 2004, 2011, |
- 2027, 2045, 2049, 2055, 2058, 2061, 2065, 2075, 2079, 2094, |
- 2102, 2103, 2115, 2116, 2119, 2123, 2129, 2133, 2139, 2143 |
+ 0, 127, 127, 136, 143, 154, 154, 169, 170, 173, |
+ 174, 175, 178, 211, 222, 223, 226, 233, 240, 249, |
+ 262, 263, 270, 270, 283, 287, 288, 292, 297, 303, |
+ 307, 311, 315, 321, 327, 333, 338, 342, 346, 352, |
+ 358, 362, 366, 372, 376, 382, 383, 387, 393, 402, |
+ 408, 412, 417, 429, 445, 450, 457, 477, 495, 504, |
+ 523, 522, 534, 533, 564, 567, 574, 573, 584, 590, |
+ 599, 610, 616, 619, 627, 626, 637, 643, 655, 659, |
+ 664, 654, 685, 684, 697, 700, 706, 709, 721, 725, |
+ 720, 743, 742, 758, 759, 763, 767, 771, 775, 779, |
+ 783, 787, 791, 795, 799, 803, 807, 811, 815, 819, |
+ 823, 827, 831, 836, 842, 843, 847, 858, 862, 866, |
+ 870, 875, 879, 889, 893, 898, 906, 910, 911, 922, |
+ 926, 930, 934, 938, 939, 945, 952, 958, 965, 968, |
+ 975, 981, 997, 1004, 1005, 1012, 1013, 1032, 1033, 1036, |
+ 1039, 1043, 1054, 1063, 1069, 1072, 1075, 1082, 1083, 1089, |
+ 1104, 1112, 1124, 1129, 1135, 1136, 1137, 1138, 1139, 1140, |
+ 1146, 1147, 1148, 1149, 1155, 1156, 1157, 1158, 1159, 1165, |
+ 1166, 1169, 1172, 1173, 1174, 1175, 1176, 1179, 1180, 1193, |
+ 1197, 1202, 1207, 1212, 1216, 1217, 1220, 1226, 1233, 1239, |
+ 1246, 1252, 1263, 1274, 1303, 1343, 1368, 1391, 1400, 1403, |
+ 1411, 1415, 1419, 1426, 1432, 1437, 1449, 1452, 1461, 1462, |
+ 1468, 1469, 1475, 1479, 1485, 1486, 1492, 1496, 1502, 1525, |
+ 1530, 1536, 1542, 1549, 1558, 1567, 1582, 1588, 1593, 1597, |
+ 1604, 1617, 1618, 1624, 1630, 1633, 1637, 1643, 1646, 1655, |
+ 1658, 1659, 1663, 1664, 1670, 1671, 1672, 1673, 1674, 1676, |
+ 1675, 1690, 1695, 1699, 1703, 1707, 1711, 1716, 1735, 1741, |
+ 1749, 1753, 1759, 1763, 1769, 1773, 1779, 1783, 1792, 1796, |
+ 1800, 1804, 1810, 1813, 1821, 1822, 1824, 1825, 1828, 1831, |
+ 1834, 1837, 1840, 1843, 1846, 1849, 1852, 1855, 1858, 1861, |
+ 1864, 1867, 1873, 1877, 1881, 1885, 1889, 1893, 1913, 1920, |
+ 1931, 1932, 1933, 1936, 1937, 1940, 1944, 1954, 1958, 1962, |
+ 1966, 1970, 1974, 1978, 1984, 1990, 1998, 2006, 2012, 2017, |
+ 2031, 2049, 2053, 2059, 2062, 2065, 2069, 2079, 2083, 2098, |
+ 2106, 2107, 2119, 2120, 2123, 2127, 2133, 2137, 2143, 2147 |
}; |
#endif |
-#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE |
+#if YYDEBUG || YYERROR_VERBOSE || 1 |
/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. |
First, the terminals, then, starting at YYNTOKENS, nonterminals. */ |
const char *yytname[] = |
@@ -756,7 +777,7 @@ |
"hidden_interfacedcl", "ohidden_funres", "hidden_funres", |
"hidden_literal", "hidden_constant", "hidden_import_list", |
"hidden_funarg_list", "hidden_structdcl_list", |
- "hidden_interfacedcl_list", 0 |
+ "hidden_interfacedcl_list", YY_NULL |
}; |
#endif |
@@ -1267,10 +1288,10 @@ |
193, 194, 195, 196, 197 |
}; |
-#define yypact_value_is_default(yystate) \ |
- ((yystate) == (-467)) |
- |
-#define yytable_value_is_error(yytable_value) \ |
+#define yypact_value_is_default(Yystate) \ |
+ (!!((Yystate) == (-467))) |
+ |
+#define yytable_value_is_error(Yytable_value) \ |
YYID (0) |
static const yytype_int16 yycheck[] = |
@@ -1592,62 +1613,35 @@ |
#define YYRECOVERING() (!!yyerrstatus) |
-#define YYBACKUP(Token, Value) \ |
-do \ |
- if (yychar == YYEMPTY && yylen == 1) \ |
- { \ |
- yychar = (Token); \ |
- yylval = (Value); \ |
- YYPOPSTACK (1); \ |
- goto yybackup; \ |
- } \ |
- else \ |
- { \ |
+#define YYBACKUP(Token, Value) \ |
+do \ |
+ if (yychar == YYEMPTY) \ |
+ { \ |
+ yychar = (Token); \ |
+ yylval = (Value); \ |
+ YYPOPSTACK (yylen); \ |
+ yystate = *yyssp; \ |
+ goto yybackup; \ |
+ } \ |
+ else \ |
+ { \ |
yyerror (YY_("syntax error: cannot back up")); \ |
YYERROR; \ |
} \ |
while (YYID (0)) |
- |
+/* Error token number */ |
#define YYTERROR 1 |
#define YYERRCODE 256 |
-/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N]. |
- If N is 0, then set CURRENT to the empty location which ends |
- the previous symbol: RHS[0] (always defined). */ |
- |
-#define YYRHSLOC(Rhs, K) ((Rhs)[K]) |
-#ifndef YYLLOC_DEFAULT |
-# define YYLLOC_DEFAULT(Current, Rhs, N) \ |
- do \ |
- if (YYID (N)) \ |
- { \ |
- (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \ |
- (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \ |
- (Current).last_line = YYRHSLOC (Rhs, N).last_line; \ |
- (Current).last_column = YYRHSLOC (Rhs, N).last_column; \ |
- } \ |
- else \ |
- { \ |
- (Current).first_line = (Current).last_line = \ |
- YYRHSLOC (Rhs, 0).last_line; \ |
- (Current).first_column = (Current).last_column = \ |
- YYRHSLOC (Rhs, 0).last_column; \ |
- } \ |
- while (YYID (0)) |
-#endif |
- |
- |
/* This macro is provided for backward compatibility. */ |
- |
#ifndef YY_LOCATION_PRINT |
# define YY_LOCATION_PRINT(File, Loc) ((void) 0) |
#endif |
/* YYLEX -- calling `yylex' with the right arguments. */ |
- |
#ifdef YYLEX_PARAM |
# define YYLEX yylex (YYLEX_PARAM) |
#else |
@@ -1697,6 +1691,8 @@ |
YYSTYPE const * const yyvaluep; |
#endif |
{ |
+ FILE *yyo = yyoutput; |
+ YYUSE (yyo); |
if (!yyvaluep) |
return; |
# ifdef YYPRINT |
@@ -1708,7 +1704,7 @@ |
switch (yytype) |
{ |
default: |
- break; |
+ break; |
} |
} |
@@ -1948,12 +1944,11 @@ |
yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, |
yytype_int16 *yyssp, int yytoken) |
{ |
- YYSIZE_T yysize0 = yytnamerr (0, yytname[yytoken]); |
+ YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[yytoken]); |
YYSIZE_T yysize = yysize0; |
- YYSIZE_T yysize1; |
enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; |
/* Internationalized format string. */ |
- const char *yyformat = 0; |
+ const char *yyformat = YY_NULL; |
/* Arguments of yyformat. */ |
char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; |
/* Number of reported tokens (one for the "unexpected", one per |
@@ -2013,11 +2008,13 @@ |
break; |
} |
yyarg[yycount++] = yytname[yyx]; |
- yysize1 = yysize + yytnamerr (0, yytname[yyx]); |
- if (! (yysize <= yysize1 |
- && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) |
- return 2; |
- yysize = yysize1; |
+ { |
+ YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]); |
+ if (! (yysize <= yysize1 |
+ && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) |
+ return 2; |
+ yysize = yysize1; |
+ } |
} |
} |
} |
@@ -2037,10 +2034,12 @@ |
# undef YYCASE_ |
} |
- yysize1 = yysize + yystrlen (yyformat); |
- if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) |
- return 2; |
- yysize = yysize1; |
+ { |
+ YYSIZE_T yysize1 = yysize + yystrlen (yyformat); |
+ if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) |
+ return 2; |
+ yysize = yysize1; |
+ } |
if (*yymsg_alloc < yysize) |
{ |
@@ -2100,32 +2099,27 @@ |
{ |
default: |
- break; |
+ break; |
} |
} |
-/* Prevent warnings from -Wmissing-prototypes. */ |
-#ifdef YYPARSE_PARAM |
-#if defined __STDC__ || defined __cplusplus |
-int yyparse (void *YYPARSE_PARAM); |
-#else |
-int yyparse (); |
-#endif |
-#else /* ! YYPARSE_PARAM */ |
-#if defined __STDC__ || defined __cplusplus |
-int yyparse (void); |
-#else |
-int yyparse (); |
-#endif |
-#endif /* ! YYPARSE_PARAM */ |
/* The lookahead symbol. */ |
int yychar, yystate; |
+ |
+#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN |
+# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN |
+# define YY_IGNORE_MAYBE_UNINITIALIZED_END |
+#endif |
+#ifndef YY_INITIAL_VALUE |
+# define YY_INITIAL_VALUE(Value) /* Nothing. */ |
+#endif |
+ |
/* The semantic value of the lookahead symbol. */ |
-YYSTYPE yylval; |
+YYSTYPE yylval YY_INITIAL_VALUE(yyval_default); |
/* Number of syntax errors so far. */ |
int yynerrs; |
@@ -2164,7 +2158,7 @@ |
`yyss': related to states. |
`yyvs': related to semantic values. |
- Refer to the stacks thru separate pointers, to allow yyoverflow |
+ Refer to the stacks through separate pointers, to allow yyoverflow |
to reallocate them elsewhere. */ |
/* The state stack. */ |
@@ -2182,7 +2176,7 @@ |
int yyn; |
int yyresult; |
/* Lookahead token as an internal (translated) token number. */ |
- int yytoken; |
+ int yytoken = 0; |
/* The variables used to return semantic value and location from the |
action routines. */ |
YYSTYPE yyval; |
@@ -2200,9 +2194,8 @@ |
Keep to zero when no symbol should be popped. */ |
int yylen = 0; |
- yytoken = 0; |
- yyss = yyssa; |
- yyvs = yyvsa; |
+ yyssp = yyss = yyssa; |
+ yyvsp = yyvs = yyvsa; |
yystacksize = YYINITDEPTH; |
YYDPRINTF ((stderr, "Starting parse\n")); |
@@ -2211,14 +2204,6 @@ |
yyerrstatus = 0; |
yynerrs = 0; |
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; |
- |
goto yysetstate; |
/*------------------------------------------------------------. |
@@ -2359,7 +2344,9 @@ |
yychar = YYEMPTY; |
yystate = yyn; |
+ YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN |
*++yyvsp = yylval; |
+ YY_IGNORE_MAYBE_UNINITIALIZED_END |
goto yynewstate; |
@@ -2396,18 +2383,16 @@ |
switch (yyn) |
{ |
case 2: |
- |
-/* Line 1806 of yacc.c */ |
-#line 128 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 131 "go.y" |
{ |
xtop = concat(xtop, (yyvsp[(4) - (4)].list)); |
} |
break; |
case 3: |
- |
-/* Line 1806 of yacc.c */ |
-#line 134 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 137 "go.y" |
{ |
prevlineno = lineno; |
yyerror("package statement must be first"); |
@@ -2417,18 +2402,16 @@ |
break; |
case 4: |
- |
-/* Line 1806 of yacc.c */ |
-#line 141 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 144 "go.y" |
{ |
mkpackage((yyvsp[(2) - (3)].sym)->name); |
} |
break; |
case 5: |
- |
-/* Line 1806 of yacc.c */ |
-#line 151 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 154 "go.y" |
{ |
importpkg = runtimepkg; |
@@ -2441,18 +2424,16 @@ |
break; |
case 6: |
- |
-/* Line 1806 of yacc.c */ |
-#line 162 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 165 "go.y" |
{ |
importpkg = nil; |
} |
break; |
case 12: |
- |
-/* Line 1806 of yacc.c */ |
-#line 176 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 179 "go.y" |
{ |
Pkg *ipkg; |
Sym *my; |
@@ -2488,9 +2469,8 @@ |
break; |
case 13: |
- |
-/* Line 1806 of yacc.c */ |
-#line 209 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 212 "go.y" |
{ |
// When an invalid import path is passed to importfile, |
// it calls yyerror and then sets up a fake import with |
@@ -2502,9 +2482,8 @@ |
break; |
case 16: |
- |
-/* Line 1806 of yacc.c */ |
-#line 224 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 227 "go.y" |
{ |
// import with original name |
(yyval.i) = parserline(); |
@@ -2514,9 +2493,8 @@ |
break; |
case 17: |
- |
-/* Line 1806 of yacc.c */ |
-#line 231 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 234 "go.y" |
{ |
// import with given name |
(yyval.i) = parserline(); |
@@ -2526,9 +2504,8 @@ |
break; |
case 18: |
- |
-/* Line 1806 of yacc.c */ |
-#line 238 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 241 "go.y" |
{ |
// import into my name space |
(yyval.i) = parserline(); |
@@ -2538,9 +2515,8 @@ |
break; |
case 19: |
- |
-/* Line 1806 of yacc.c */ |
-#line 247 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 250 "go.y" |
{ |
if(importpkg->name == nil) { |
importpkg->name = (yyvsp[(2) - (4)].sym)->name; |
@@ -2555,9 +2531,8 @@ |
break; |
case 21: |
- |
-/* Line 1806 of yacc.c */ |
-#line 261 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 264 "go.y" |
{ |
if(strcmp((yyvsp[(1) - (1)].sym)->name, "safe") == 0) |
curio.importsafe = 1; |
@@ -2565,18 +2540,16 @@ |
break; |
case 22: |
- |
-/* Line 1806 of yacc.c */ |
-#line 267 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 270 "go.y" |
{ |
defercheckwidth(); |
} |
break; |
case 23: |
- |
-/* Line 1806 of yacc.c */ |
-#line 271 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 274 "go.y" |
{ |
resumecheckwidth(); |
unimportfile(); |
@@ -2584,9 +2557,8 @@ |
break; |
case 24: |
- |
-/* Line 1806 of yacc.c */ |
-#line 280 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 283 "go.y" |
{ |
yyerror("empty top-level declaration"); |
(yyval.list) = nil; |
@@ -2594,18 +2566,16 @@ |
break; |
case 26: |
- |
-/* Line 1806 of yacc.c */ |
-#line 286 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 289 "go.y" |
{ |
(yyval.list) = list1((yyvsp[(1) - (1)].node)); |
} |
break; |
case 27: |
- |
-/* Line 1806 of yacc.c */ |
-#line 290 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 293 "go.y" |
{ |
yyerror("non-declaration statement outside function body"); |
(yyval.list) = nil; |
@@ -2613,45 +2583,40 @@ |
break; |
case 28: |
- |
-/* Line 1806 of yacc.c */ |
-#line 295 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 298 "go.y" |
{ |
(yyval.list) = nil; |
} |
break; |
case 29: |
- |
-/* Line 1806 of yacc.c */ |
-#line 301 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 304 "go.y" |
{ |
(yyval.list) = (yyvsp[(2) - (2)].list); |
} |
break; |
case 30: |
- |
-/* Line 1806 of yacc.c */ |
-#line 305 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 308 "go.y" |
{ |
(yyval.list) = (yyvsp[(3) - (5)].list); |
} |
break; |
case 31: |
- |
-/* Line 1806 of yacc.c */ |
-#line 309 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 312 "go.y" |
{ |
(yyval.list) = nil; |
} |
break; |
case 32: |
- |
-/* Line 1806 of yacc.c */ |
-#line 313 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 316 "go.y" |
{ |
(yyval.list) = (yyvsp[(2) - (2)].list); |
iota = -100000; |
@@ -2660,9 +2625,8 @@ |
break; |
case 33: |
- |
-/* Line 1806 of yacc.c */ |
-#line 319 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 322 "go.y" |
{ |
(yyval.list) = (yyvsp[(3) - (5)].list); |
iota = -100000; |
@@ -2671,9 +2635,8 @@ |
break; |
case 34: |
- |
-/* Line 1806 of yacc.c */ |
-#line 325 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 328 "go.y" |
{ |
(yyval.list) = concat((yyvsp[(3) - (7)].list), (yyvsp[(5) - (7)].list)); |
iota = -100000; |
@@ -2682,9 +2645,8 @@ |
break; |
case 35: |
- |
-/* Line 1806 of yacc.c */ |
-#line 331 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 334 "go.y" |
{ |
(yyval.list) = nil; |
iota = -100000; |
@@ -2692,108 +2654,96 @@ |
break; |
case 36: |
- |
-/* Line 1806 of yacc.c */ |
-#line 336 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 339 "go.y" |
{ |
(yyval.list) = list1((yyvsp[(2) - (2)].node)); |
} |
break; |
case 37: |
- |
-/* Line 1806 of yacc.c */ |
-#line 340 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 343 "go.y" |
{ |
(yyval.list) = (yyvsp[(3) - (5)].list); |
} |
break; |
case 38: |
- |
-/* Line 1806 of yacc.c */ |
-#line 344 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 347 "go.y" |
{ |
(yyval.list) = nil; |
} |
break; |
case 39: |
- |
-/* Line 1806 of yacc.c */ |
-#line 350 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 353 "go.y" |
{ |
iota = 0; |
} |
break; |
case 40: |
- |
-/* Line 1806 of yacc.c */ |
-#line 356 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 359 "go.y" |
{ |
(yyval.list) = variter((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node), nil); |
} |
break; |
case 41: |
- |
-/* Line 1806 of yacc.c */ |
-#line 360 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 363 "go.y" |
{ |
(yyval.list) = variter((yyvsp[(1) - (4)].list), (yyvsp[(2) - (4)].node), (yyvsp[(4) - (4)].list)); |
} |
break; |
case 42: |
- |
-/* Line 1806 of yacc.c */ |
-#line 364 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 367 "go.y" |
{ |
(yyval.list) = variter((yyvsp[(1) - (3)].list), nil, (yyvsp[(3) - (3)].list)); |
} |
break; |
case 43: |
- |
-/* Line 1806 of yacc.c */ |
-#line 370 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 373 "go.y" |
{ |
(yyval.list) = constiter((yyvsp[(1) - (4)].list), (yyvsp[(2) - (4)].node), (yyvsp[(4) - (4)].list)); |
} |
break; |
case 44: |
- |
-/* Line 1806 of yacc.c */ |
-#line 374 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 377 "go.y" |
{ |
(yyval.list) = constiter((yyvsp[(1) - (3)].list), N, (yyvsp[(3) - (3)].list)); |
} |
break; |
case 46: |
- |
-/* Line 1806 of yacc.c */ |
-#line 381 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 384 "go.y" |
{ |
(yyval.list) = constiter((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node), nil); |
} |
break; |
case 47: |
- |
-/* Line 1806 of yacc.c */ |
-#line 385 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 388 "go.y" |
{ |
(yyval.list) = constiter((yyvsp[(1) - (1)].list), N, nil); |
} |
break; |
case 48: |
- |
-/* Line 1806 of yacc.c */ |
-#line 391 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 394 "go.y" |
{ |
// different from dclname because the name |
// becomes visible right here, not at the end |
@@ -2803,27 +2753,24 @@ |
break; |
case 49: |
- |
-/* Line 1806 of yacc.c */ |
-#line 400 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 403 "go.y" |
{ |
(yyval.node) = typedcl1((yyvsp[(1) - (2)].node), (yyvsp[(2) - (2)].node), 1); |
} |
break; |
case 50: |
- |
-/* Line 1806 of yacc.c */ |
-#line 406 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 409 "go.y" |
{ |
(yyval.node) = (yyvsp[(1) - (1)].node); |
} |
break; |
case 51: |
- |
-/* Line 1806 of yacc.c */ |
-#line 410 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 413 "go.y" |
{ |
(yyval.node) = nod(OASOP, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); |
(yyval.node)->etype = (yyvsp[(2) - (3)].i); // rathole to pass opcode |
@@ -2831,9 +2778,8 @@ |
break; |
case 52: |
- |
-/* Line 1806 of yacc.c */ |
-#line 415 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 418 "go.y" |
{ |
if((yyvsp[(1) - (3)].list)->next == nil && (yyvsp[(3) - (3)].list)->next == nil) { |
// simple |
@@ -2848,9 +2794,8 @@ |
break; |
case 53: |
- |
-/* Line 1806 of yacc.c */ |
-#line 427 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 430 "go.y" |
{ |
if((yyvsp[(3) - (3)].list)->n->op == OTYPESW) { |
(yyval.node) = nod(OTYPESW, N, (yyvsp[(3) - (3)].list)->n->right); |
@@ -2869,9 +2814,8 @@ |
break; |
case 54: |
- |
-/* Line 1806 of yacc.c */ |
-#line 443 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 446 "go.y" |
{ |
(yyval.node) = nod(OASOP, (yyvsp[(1) - (2)].node), nodintconst(1)); |
(yyval.node)->etype = OADD; |
@@ -2879,9 +2823,8 @@ |
break; |
case 55: |
- |
-/* Line 1806 of yacc.c */ |
-#line 448 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 451 "go.y" |
{ |
(yyval.node) = nod(OASOP, (yyvsp[(1) - (2)].node), nodintconst(1)); |
(yyval.node)->etype = OSUB; |
@@ -2889,9 +2832,8 @@ |
break; |
case 56: |
- |
-/* Line 1806 of yacc.c */ |
-#line 455 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 458 "go.y" |
{ |
Node *n, *nn; |
@@ -2914,9 +2856,8 @@ |
break; |
case 57: |
- |
-/* Line 1806 of yacc.c */ |
-#line 475 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 478 "go.y" |
{ |
Node *n; |
@@ -2937,9 +2878,8 @@ |
break; |
case 58: |
- |
-/* Line 1806 of yacc.c */ |
-#line 493 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 496 "go.y" |
{ |
// will be converted to OCASE |
// right will point to next case |
@@ -2951,9 +2891,8 @@ |
break; |
case 59: |
- |
-/* Line 1806 of yacc.c */ |
-#line 502 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 505 "go.y" |
{ |
Node *n, *nn; |
@@ -2972,18 +2911,16 @@ |
break; |
case 60: |
- |
-/* Line 1806 of yacc.c */ |
-#line 520 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 523 "go.y" |
{ |
markdcl(); |
} |
break; |
case 61: |
- |
-/* Line 1806 of yacc.c */ |
-#line 524 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 527 "go.y" |
{ |
(yyval.node) = liststmt((yyvsp[(3) - (4)].list)); |
popdcl(); |
@@ -2991,9 +2928,8 @@ |
break; |
case 62: |
- |
-/* Line 1806 of yacc.c */ |
-#line 531 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 534 "go.y" |
{ |
// If the last token read by the lexer was consumed |
// as part of the case, clear it (parser has cleared yychar). |
@@ -3006,9 +2942,8 @@ |
break; |
case 63: |
- |
-/* Line 1806 of yacc.c */ |
-#line 541 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 544 "go.y" |
{ |
int last; |
@@ -3030,36 +2965,32 @@ |
break; |
case 64: |
- |
-/* Line 1806 of yacc.c */ |
-#line 561 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 564 "go.y" |
{ |
(yyval.list) = nil; |
} |
break; |
case 65: |
- |
-/* Line 1806 of yacc.c */ |
-#line 565 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 568 "go.y" |
{ |
(yyval.list) = list((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node)); |
} |
break; |
case 66: |
- |
-/* Line 1806 of yacc.c */ |
-#line 571 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 574 "go.y" |
{ |
markdcl(); |
} |
break; |
case 67: |
- |
-/* Line 1806 of yacc.c */ |
-#line 575 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 578 "go.y" |
{ |
(yyval.list) = (yyvsp[(3) - (4)].list); |
popdcl(); |
@@ -3067,9 +2998,8 @@ |
break; |
case 68: |
- |
-/* Line 1806 of yacc.c */ |
-#line 582 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 585 "go.y" |
{ |
(yyval.node) = nod(ORANGE, N, (yyvsp[(4) - (4)].node)); |
(yyval.node)->list = (yyvsp[(1) - (4)].list); |
@@ -3078,9 +3008,8 @@ |
break; |
case 69: |
- |
-/* Line 1806 of yacc.c */ |
-#line 588 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 591 "go.y" |
{ |
(yyval.node) = nod(ORANGE, N, (yyvsp[(4) - (4)].node)); |
(yyval.node)->list = (yyvsp[(1) - (4)].list); |
@@ -3090,9 +3019,8 @@ |
break; |
case 70: |
- |
-/* Line 1806 of yacc.c */ |
-#line 597 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 600 "go.y" |
{ |
// init ; test ; incr |
if((yyvsp[(5) - (5)].node) != N && (yyvsp[(5) - (5)].node)->colas != 0) |
@@ -3106,9 +3034,8 @@ |
break; |
case 71: |
- |
-/* Line 1806 of yacc.c */ |
-#line 608 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 611 "go.y" |
{ |
// normal test |
(yyval.node) = nod(OFOR, N, N); |
@@ -3117,9 +3044,8 @@ |
break; |
case 73: |
- |
-/* Line 1806 of yacc.c */ |
-#line 617 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 620 "go.y" |
{ |
(yyval.node) = (yyvsp[(1) - (2)].node); |
(yyval.node)->nbody = concat((yyval.node)->nbody, (yyvsp[(2) - (2)].list)); |
@@ -3127,18 +3053,16 @@ |
break; |
case 74: |
- |
-/* Line 1806 of yacc.c */ |
-#line 624 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 627 "go.y" |
{ |
markdcl(); |
} |
break; |
case 75: |
- |
-/* Line 1806 of yacc.c */ |
-#line 628 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 631 "go.y" |
{ |
(yyval.node) = (yyvsp[(3) - (3)].node); |
popdcl(); |
@@ -3146,9 +3070,8 @@ |
break; |
case 76: |
- |
-/* Line 1806 of yacc.c */ |
-#line 635 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 638 "go.y" |
{ |
// test |
(yyval.node) = nod(OIF, N, N); |
@@ -3157,9 +3080,8 @@ |
break; |
case 77: |
- |
-/* Line 1806 of yacc.c */ |
-#line 641 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 644 "go.y" |
{ |
// init ; test |
(yyval.node) = nod(OIF, N, N); |
@@ -3170,18 +3092,16 @@ |
break; |
case 78: |
- |
-/* Line 1806 of yacc.c */ |
-#line 652 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 655 "go.y" |
{ |
markdcl(); |
} |
break; |
case 79: |
- |
-/* Line 1806 of yacc.c */ |
-#line 656 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 659 "go.y" |
{ |
if((yyvsp[(3) - (3)].node)->ntest == N) |
yyerror("missing condition in if statement"); |
@@ -3189,18 +3109,16 @@ |
break; |
case 80: |
- |
-/* Line 1806 of yacc.c */ |
-#line 661 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 664 "go.y" |
{ |
(yyvsp[(3) - (5)].node)->nbody = (yyvsp[(5) - (5)].list); |
} |
break; |
case 81: |
- |
-/* Line 1806 of yacc.c */ |
-#line 665 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 668 "go.y" |
{ |
Node *n; |
NodeList *nn; |
@@ -3218,18 +3136,16 @@ |
break; |
case 82: |
- |
-/* Line 1806 of yacc.c */ |
-#line 682 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 685 "go.y" |
{ |
markdcl(); |
} |
break; |
case 83: |
- |
-/* Line 1806 of yacc.c */ |
-#line 686 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 689 "go.y" |
{ |
if((yyvsp[(4) - (5)].node)->ntest == N) |
yyerror("missing condition in if statement"); |
@@ -3239,36 +3155,32 @@ |
break; |
case 84: |
- |
-/* Line 1806 of yacc.c */ |
-#line 694 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 697 "go.y" |
{ |
(yyval.list) = nil; |
} |
break; |
case 85: |
- |
-/* Line 1806 of yacc.c */ |
-#line 698 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 701 "go.y" |
{ |
(yyval.list) = concat((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].list)); |
} |
break; |
case 86: |
- |
-/* Line 1806 of yacc.c */ |
-#line 703 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 706 "go.y" |
{ |
(yyval.list) = nil; |
} |
break; |
case 87: |
- |
-/* Line 1806 of yacc.c */ |
-#line 707 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 710 "go.y" |
{ |
NodeList *node; |
@@ -3280,18 +3192,16 @@ |
break; |
case 88: |
- |
-/* Line 1806 of yacc.c */ |
-#line 718 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 721 "go.y" |
{ |
markdcl(); |
} |
break; |
case 89: |
- |
-/* Line 1806 of yacc.c */ |
-#line 722 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 725 "go.y" |
{ |
Node *n; |
n = (yyvsp[(3) - (3)].node)->ntest; |
@@ -3302,9 +3212,8 @@ |
break; |
case 90: |
- |
-/* Line 1806 of yacc.c */ |
-#line 730 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 733 "go.y" |
{ |
(yyval.node) = (yyvsp[(3) - (7)].node); |
(yyval.node)->op = OSWITCH; |
@@ -3315,18 +3224,16 @@ |
break; |
case 91: |
- |
-/* Line 1806 of yacc.c */ |
-#line 740 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 743 "go.y" |
{ |
typesw = nod(OXXX, typesw, N); |
} |
break; |
case 92: |
- |
-/* Line 1806 of yacc.c */ |
-#line 744 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 747 "go.y" |
{ |
(yyval.node) = nod(OSELECT, N, N); |
(yyval.node)->lineno = typesw->lineno; |
@@ -3336,198 +3243,176 @@ |
break; |
case 94: |
- |
-/* Line 1806 of yacc.c */ |
-#line 757 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 760 "go.y" |
{ |
(yyval.node) = nod(OOROR, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); |
} |
break; |
case 95: |
- |
-/* Line 1806 of yacc.c */ |
-#line 761 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 764 "go.y" |
{ |
(yyval.node) = nod(OANDAND, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); |
} |
break; |
case 96: |
- |
-/* Line 1806 of yacc.c */ |
-#line 765 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 768 "go.y" |
{ |
(yyval.node) = nod(OEQ, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); |
} |
break; |
case 97: |
- |
-/* Line 1806 of yacc.c */ |
-#line 769 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 772 "go.y" |
{ |
(yyval.node) = nod(ONE, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); |
} |
break; |
case 98: |
- |
-/* Line 1806 of yacc.c */ |
-#line 773 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 776 "go.y" |
{ |
(yyval.node) = nod(OLT, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); |
} |
break; |
case 99: |
- |
-/* Line 1806 of yacc.c */ |
-#line 777 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 780 "go.y" |
{ |
(yyval.node) = nod(OLE, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); |
} |
break; |
case 100: |
- |
-/* Line 1806 of yacc.c */ |
-#line 781 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 784 "go.y" |
{ |
(yyval.node) = nod(OGE, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); |
} |
break; |
case 101: |
- |
-/* Line 1806 of yacc.c */ |
-#line 785 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 788 "go.y" |
{ |
(yyval.node) = nod(OGT, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); |
} |
break; |
case 102: |
- |
-/* Line 1806 of yacc.c */ |
-#line 789 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 792 "go.y" |
{ |
(yyval.node) = nod(OADD, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); |
} |
break; |
case 103: |
- |
-/* Line 1806 of yacc.c */ |
-#line 793 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 796 "go.y" |
{ |
(yyval.node) = nod(OSUB, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); |
} |
break; |
case 104: |
- |
-/* Line 1806 of yacc.c */ |
-#line 797 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 800 "go.y" |
{ |
(yyval.node) = nod(OOR, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); |
} |
break; |
case 105: |
- |
-/* Line 1806 of yacc.c */ |
-#line 801 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 804 "go.y" |
{ |
(yyval.node) = nod(OXOR, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); |
} |
break; |
case 106: |
- |
-/* Line 1806 of yacc.c */ |
-#line 805 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 808 "go.y" |
{ |
(yyval.node) = nod(OMUL, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); |
} |
break; |
case 107: |
- |
-/* Line 1806 of yacc.c */ |
-#line 809 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 812 "go.y" |
{ |
(yyval.node) = nod(ODIV, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); |
} |
break; |
case 108: |
- |
-/* Line 1806 of yacc.c */ |
-#line 813 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 816 "go.y" |
{ |
(yyval.node) = nod(OMOD, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); |
} |
break; |
case 109: |
- |
-/* Line 1806 of yacc.c */ |
-#line 817 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 820 "go.y" |
{ |
(yyval.node) = nod(OAND, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); |
} |
break; |
case 110: |
- |
-/* Line 1806 of yacc.c */ |
-#line 821 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 824 "go.y" |
{ |
(yyval.node) = nod(OANDNOT, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); |
} |
break; |
case 111: |
- |
-/* Line 1806 of yacc.c */ |
-#line 825 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 828 "go.y" |
{ |
(yyval.node) = nod(OLSH, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); |
} |
break; |
case 112: |
- |
-/* Line 1806 of yacc.c */ |
-#line 829 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 832 "go.y" |
{ |
(yyval.node) = nod(ORSH, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); |
} |
break; |
case 113: |
- |
-/* Line 1806 of yacc.c */ |
-#line 834 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 837 "go.y" |
{ |
(yyval.node) = nod(OSEND, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); |
} |
break; |
case 115: |
- |
-/* Line 1806 of yacc.c */ |
-#line 841 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 844 "go.y" |
{ |
(yyval.node) = nod(OIND, (yyvsp[(2) - (2)].node), N); |
} |
break; |
case 116: |
- |
-/* Line 1806 of yacc.c */ |
-#line 845 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 848 "go.y" |
{ |
if((yyvsp[(2) - (2)].node)->op == OCOMPLIT) { |
// Special case for &T{...}: turn into (*T){...}. |
@@ -3541,36 +3426,32 @@ |
break; |
case 117: |
- |
-/* Line 1806 of yacc.c */ |
-#line 856 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 859 "go.y" |
{ |
(yyval.node) = nod(OPLUS, (yyvsp[(2) - (2)].node), N); |
} |
break; |
case 118: |
- |
-/* Line 1806 of yacc.c */ |
-#line 860 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 863 "go.y" |
{ |
(yyval.node) = nod(OMINUS, (yyvsp[(2) - (2)].node), N); |
} |
break; |
case 119: |
- |
-/* Line 1806 of yacc.c */ |
-#line 864 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 867 "go.y" |
{ |
(yyval.node) = nod(ONOT, (yyvsp[(2) - (2)].node), N); |
} |
break; |
case 120: |
- |
-/* Line 1806 of yacc.c */ |
-#line 868 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 871 "go.y" |
{ |
yyerror("the bitwise complement operator is ^"); |
(yyval.node) = nod(OCOM, (yyvsp[(2) - (2)].node), N); |
@@ -3578,36 +3459,32 @@ |
break; |
case 121: |
- |
-/* Line 1806 of yacc.c */ |
-#line 873 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 876 "go.y" |
{ |
(yyval.node) = nod(OCOM, (yyvsp[(2) - (2)].node), N); |
} |
break; |
case 122: |
- |
-/* Line 1806 of yacc.c */ |
-#line 877 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 880 "go.y" |
{ |
(yyval.node) = nod(ORECV, (yyvsp[(2) - (2)].node), N); |
} |
break; |
case 123: |
- |
-/* Line 1806 of yacc.c */ |
-#line 887 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 890 "go.y" |
{ |
(yyval.node) = nod(OCALL, (yyvsp[(1) - (3)].node), N); |
} |
break; |
case 124: |
- |
-/* Line 1806 of yacc.c */ |
-#line 891 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 894 "go.y" |
{ |
(yyval.node) = nod(OCALL, (yyvsp[(1) - (5)].node), N); |
(yyval.node)->list = (yyvsp[(3) - (5)].list); |
@@ -3615,9 +3492,8 @@ |
break; |
case 125: |
- |
-/* Line 1806 of yacc.c */ |
-#line 896 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 899 "go.y" |
{ |
(yyval.node) = nod(OCALL, (yyvsp[(1) - (6)].node), N); |
(yyval.node)->list = (yyvsp[(3) - (6)].list); |
@@ -3626,18 +3502,16 @@ |
break; |
case 126: |
- |
-/* Line 1806 of yacc.c */ |
-#line 904 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 907 "go.y" |
{ |
(yyval.node) = nodlit((yyvsp[(1) - (1)].val)); |
} |
break; |
case 128: |
- |
-/* Line 1806 of yacc.c */ |
-#line 909 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 912 "go.y" |
{ |
if((yyvsp[(1) - (3)].node)->op == OPACK) { |
Sym *s; |
@@ -3651,45 +3525,40 @@ |
break; |
case 129: |
- |
-/* Line 1806 of yacc.c */ |
-#line 920 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 923 "go.y" |
{ |
(yyval.node) = nod(ODOTTYPE, (yyvsp[(1) - (5)].node), (yyvsp[(4) - (5)].node)); |
} |
break; |
case 130: |
- |
-/* Line 1806 of yacc.c */ |
-#line 924 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 927 "go.y" |
{ |
(yyval.node) = nod(OTYPESW, N, (yyvsp[(1) - (5)].node)); |
} |
break; |
case 131: |
- |
-/* Line 1806 of yacc.c */ |
-#line 928 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 931 "go.y" |
{ |
(yyval.node) = nod(OINDEX, (yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].node)); |
} |
break; |
case 132: |
- |
-/* Line 1806 of yacc.c */ |
-#line 932 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 935 "go.y" |
{ |
(yyval.node) = nod(OSLICE, (yyvsp[(1) - (6)].node), nod(OKEY, (yyvsp[(3) - (6)].node), (yyvsp[(5) - (6)].node))); |
} |
break; |
case 134: |
- |
-/* Line 1806 of yacc.c */ |
-#line 937 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 940 "go.y" |
{ |
// conversion |
(yyval.node) = nod(OCALL, (yyvsp[(1) - (4)].node), N); |
@@ -3698,9 +3567,8 @@ |
break; |
case 135: |
- |
-/* Line 1806 of yacc.c */ |
-#line 943 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 946 "go.y" |
{ |
(yyval.node) = (yyvsp[(3) - (5)].node); |
(yyval.node)->right = (yyvsp[(1) - (5)].node); |
@@ -3710,9 +3578,8 @@ |
break; |
case 136: |
- |
-/* Line 1806 of yacc.c */ |
-#line 950 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 953 "go.y" |
{ |
(yyval.node) = (yyvsp[(3) - (5)].node); |
(yyval.node)->right = (yyvsp[(1) - (5)].node); |
@@ -3721,9 +3588,8 @@ |
break; |
case 137: |
- |
-/* Line 1806 of yacc.c */ |
-#line 956 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 959 "go.y" |
{ |
yyerror("cannot parenthesize type in composite literal"); |
(yyval.node) = (yyvsp[(5) - (7)].node); |
@@ -3733,9 +3599,8 @@ |
break; |
case 139: |
- |
-/* Line 1806 of yacc.c */ |
-#line 965 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 968 "go.y" |
{ |
// composite expression. |
// make node early so we get the right line number. |
@@ -3744,18 +3609,16 @@ |
break; |
case 140: |
- |
-/* Line 1806 of yacc.c */ |
-#line 973 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 976 "go.y" |
{ |
(yyval.node) = nod(OKEY, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); |
} |
break; |
case 141: |
- |
-/* Line 1806 of yacc.c */ |
-#line 979 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 982 "go.y" |
{ |
// These nodes do not carry line numbers. |
// Since a composite literal commonly spans several lines, |
@@ -3774,9 +3637,8 @@ |
break; |
case 142: |
- |
-/* Line 1806 of yacc.c */ |
-#line 995 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 998 "go.y" |
{ |
(yyval.node) = (yyvsp[(2) - (4)].node); |
(yyval.node)->list = (yyvsp[(3) - (4)].list); |
@@ -3784,9 +3646,8 @@ |
break; |
case 144: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1003 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1006 "go.y" |
{ |
(yyval.node) = (yyvsp[(2) - (4)].node); |
(yyval.node)->list = (yyvsp[(3) - (4)].list); |
@@ -3794,9 +3655,8 @@ |
break; |
case 146: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1011 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1014 "go.y" |
{ |
(yyval.node) = (yyvsp[(2) - (3)].node); |
@@ -3816,27 +3676,24 @@ |
break; |
case 150: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1037 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1040 "go.y" |
{ |
(yyval.i) = LBODY; |
} |
break; |
case 151: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1041 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1044 "go.y" |
{ |
(yyval.i) = '{'; |
} |
break; |
case 152: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1052 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1055 "go.y" |
{ |
if((yyvsp[(1) - (1)].sym) == S) |
(yyval.node) = N; |
@@ -3846,27 +3703,24 @@ |
break; |
case 153: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1061 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1064 "go.y" |
{ |
(yyval.node) = dclname((yyvsp[(1) - (1)].sym)); |
} |
break; |
case 154: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1066 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1069 "go.y" |
{ |
(yyval.node) = N; |
} |
break; |
case 156: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1073 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1076 "go.y" |
{ |
(yyval.sym) = (yyvsp[(1) - (1)].sym); |
// during imports, unqualified non-exported identifiers are from builtinpkg |
@@ -3876,18 +3730,16 @@ |
break; |
case 158: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1081 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1084 "go.y" |
{ |
(yyval.sym) = S; |
} |
break; |
case 159: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1087 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1090 "go.y" |
{ |
Pkg *p; |
@@ -3903,9 +3755,8 @@ |
break; |
case 160: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1102 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1105 "go.y" |
{ |
(yyval.node) = oldname((yyvsp[(1) - (1)].sym)); |
if((yyval.node)->pack != N) |
@@ -3914,9 +3765,8 @@ |
break; |
case 162: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1122 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1125 "go.y" |
{ |
yyerror("final argument in variadic function missing type"); |
(yyval.node) = nod(ODDD, typenod(typ(TINTER)), N); |
@@ -3924,45 +3774,40 @@ |
break; |
case 163: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1127 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1130 "go.y" |
{ |
(yyval.node) = nod(ODDD, (yyvsp[(2) - (2)].node), N); |
} |
break; |
case 169: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1138 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1141 "go.y" |
{ |
(yyval.node) = nod(OTPAREN, (yyvsp[(2) - (3)].node), N); |
} |
break; |
case 173: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1147 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1150 "go.y" |
{ |
(yyval.node) = nod(OIND, (yyvsp[(2) - (2)].node), N); |
} |
break; |
case 178: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1157 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1160 "go.y" |
{ |
(yyval.node) = nod(OTPAREN, (yyvsp[(2) - (3)].node), N); |
} |
break; |
case 188: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1178 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1181 "go.y" |
{ |
if((yyvsp[(1) - (3)].node)->op == OPACK) { |
Sym *s; |
@@ -3976,18 +3821,16 @@ |
break; |
case 189: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1191 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1194 "go.y" |
{ |
(yyval.node) = nod(OTARRAY, (yyvsp[(2) - (4)].node), (yyvsp[(4) - (4)].node)); |
} |
break; |
case 190: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1195 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1198 "go.y" |
{ |
// array literal of nelem |
(yyval.node) = nod(OTARRAY, nod(ODDD, N, N), (yyvsp[(4) - (4)].node)); |
@@ -3995,9 +3838,8 @@ |
break; |
case 191: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1200 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1203 "go.y" |
{ |
(yyval.node) = nod(OTCHAN, (yyvsp[(2) - (2)].node), N); |
(yyval.node)->etype = Cboth; |
@@ -4005,9 +3847,8 @@ |
break; |
case 192: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1205 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1208 "go.y" |
{ |
(yyval.node) = nod(OTCHAN, (yyvsp[(3) - (3)].node), N); |
(yyval.node)->etype = Csend; |
@@ -4015,27 +3856,24 @@ |
break; |
case 193: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1210 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1213 "go.y" |
{ |
(yyval.node) = nod(OTMAP, (yyvsp[(3) - (5)].node), (yyvsp[(5) - (5)].node)); |
} |
break; |
case 196: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1218 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1221 "go.y" |
{ |
(yyval.node) = nod(OIND, (yyvsp[(2) - (2)].node), N); |
} |
break; |
case 197: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1224 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1227 "go.y" |
{ |
(yyval.node) = nod(OTCHAN, (yyvsp[(3) - (3)].node), N); |
(yyval.node)->etype = Crecv; |
@@ -4043,9 +3881,8 @@ |
break; |
case 198: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1231 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1234 "go.y" |
{ |
(yyval.node) = nod(OTSTRUCT, N, N); |
(yyval.node)->list = (yyvsp[(3) - (5)].list); |
@@ -4054,9 +3891,8 @@ |
break; |
case 199: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1237 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1240 "go.y" |
{ |
(yyval.node) = nod(OTSTRUCT, N, N); |
fixlbrace((yyvsp[(2) - (3)].i)); |
@@ -4064,9 +3900,8 @@ |
break; |
case 200: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1244 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1247 "go.y" |
{ |
(yyval.node) = nod(OTINTER, N, N); |
(yyval.node)->list = (yyvsp[(3) - (5)].list); |
@@ -4075,9 +3910,8 @@ |
break; |
case 201: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1250 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1253 "go.y" |
{ |
(yyval.node) = nod(OTINTER, N, N); |
fixlbrace((yyvsp[(2) - (3)].i)); |
@@ -4085,9 +3919,8 @@ |
break; |
case 202: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1261 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1264 "go.y" |
{ |
(yyval.node) = (yyvsp[(2) - (3)].node); |
if((yyval.node) == N) |
@@ -4099,9 +3932,8 @@ |
break; |
case 203: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1272 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1275 "go.y" |
{ |
Node *t; |
@@ -4133,9 +3965,8 @@ |
break; |
case 204: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1301 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1304 "go.y" |
{ |
Node *rcvr, *t; |
@@ -4176,9 +4007,8 @@ |
break; |
case 205: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1341 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1344 "go.y" |
{ |
Sym *s; |
Type *t; |
@@ -4186,17 +4016,17 @@ |
(yyval.node) = N; |
s = (yyvsp[(1) - (5)].sym); |
- t = functype(N, (yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].list)); |
- |
importsym(s, ONAME); |
if(s->def != N && s->def->op == ONAME) { |
- if(eqtype(t, s->def->type)) { |
+ if(eqfunctype(s->def->type, nil, (yyvsp[(3) - (5)].flist), (yyvsp[(5) - (5)].flist))) { |
dclcontext = PDISCARD; // since we skip funchdr below |
break; |
} |
+ t = functype(F, (yyvsp[(3) - (5)].flist), (yyvsp[(5) - (5)].flist)); |
yyerror("inconsistent definition for func %S during import\n\t%T\n\t%T", s, s->def->type, t); |
} |
+ t = functype(F, (yyvsp[(3) - (5)].flist), (yyvsp[(5) - (5)].flist)); |
(yyval.node) = newname(s); |
(yyval.node)->type = t; |
declare((yyval.node), PFUNC); |
@@ -4206,12 +4036,16 @@ |
break; |
case 206: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1366 "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)); |
+/* Line 1792 of yacc.c */ |
+#line 1369 "go.y" |
+ { |
+ (yyval.node) = N; |
+ if(!mustaddmethod((yyvsp[(4) - (8)].sym), (yyvsp[(2) - (8)].flist), (yyvsp[(6) - (8)].flist), (yyvsp[(8) - (8)].flist))) { |
+ dclcontext = PDISCARD; |
+ break; |
+ } |
+ (yyval.node) = methodname1(newname((yyvsp[(4) - (8)].sym)), typenod((yyvsp[(2) - (8)].flist)->f->type)); |
+ (yyval.node)->type = functype((yyvsp[(2) - (8)].flist)->f, (yyvsp[(6) - (8)].flist), (yyvsp[(8) - (8)].flist)); |
checkwidth((yyval.node)->type); |
addmethod((yyvsp[(4) - (8)].sym), (yyval.node)->type, 0, nointerface); |
@@ -4227,9 +4061,8 @@ |
break; |
case 207: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1384 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1392 "go.y" |
{ |
(yyvsp[(3) - (5)].list) = checkarglist((yyvsp[(3) - (5)].list), 1); |
(yyval.node) = nod(OTFUNC, N, N); |
@@ -4239,18 +4072,16 @@ |
break; |
case 208: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1392 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1400 "go.y" |
{ |
(yyval.list) = nil; |
} |
break; |
case 209: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1396 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1404 "go.y" |
{ |
(yyval.list) = (yyvsp[(2) - (3)].list); |
if((yyval.list) == nil) |
@@ -4259,27 +4090,24 @@ |
break; |
case 210: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1404 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1412 "go.y" |
{ |
(yyval.list) = nil; |
} |
break; |
case 211: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1408 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1416 "go.y" |
{ |
(yyval.list) = list1(nod(ODCLFIELD, N, (yyvsp[(1) - (1)].node))); |
} |
break; |
case 212: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1412 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1420 "go.y" |
{ |
(yyvsp[(2) - (3)].list) = checkarglist((yyvsp[(2) - (3)].list), 0); |
(yyval.list) = (yyvsp[(2) - (3)].list); |
@@ -4287,18 +4115,16 @@ |
break; |
case 213: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1419 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1427 "go.y" |
{ |
closurehdr((yyvsp[(1) - (1)].node)); |
} |
break; |
case 214: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1425 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1433 "go.y" |
{ |
(yyval.node) = closurebody((yyvsp[(3) - (4)].list)); |
fixlbrace((yyvsp[(2) - (4)].i)); |
@@ -4306,27 +4132,24 @@ |
break; |
case 215: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1430 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1438 "go.y" |
{ |
(yyval.node) = closurebody(nil); |
} |
break; |
case 216: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1441 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1449 "go.y" |
{ |
(yyval.list) = nil; |
} |
break; |
case 217: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1445 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1453 "go.y" |
{ |
(yyval.list) = concat((yyvsp[(1) - (3)].list), (yyvsp[(2) - (3)].list)); |
if(nsyntaxerrors == 0) |
@@ -4336,72 +4159,64 @@ |
break; |
case 219: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1455 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1463 "go.y" |
{ |
(yyval.list) = concat((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].list)); |
} |
break; |
case 221: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1462 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1470 "go.y" |
{ |
(yyval.list) = concat((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].list)); |
} |
break; |
case 222: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1468 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1476 "go.y" |
{ |
(yyval.list) = list1((yyvsp[(1) - (1)].node)); |
} |
break; |
case 223: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1472 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1480 "go.y" |
{ |
(yyval.list) = list((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); |
} |
break; |
case 225: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1479 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1487 "go.y" |
{ |
(yyval.list) = concat((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].list)); |
} |
break; |
case 226: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1485 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1493 "go.y" |
{ |
(yyval.list) = list1((yyvsp[(1) - (1)].node)); |
} |
break; |
case 227: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1489 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1497 "go.y" |
{ |
(yyval.list) = list((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); |
} |
break; |
case 228: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1495 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1503 "go.y" |
{ |
NodeList *l; |
@@ -4427,9 +4242,8 @@ |
break; |
case 229: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1518 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1526 "go.y" |
{ |
(yyvsp[(1) - (2)].node)->val = (yyvsp[(2) - (2)].val); |
(yyval.list) = list1((yyvsp[(1) - (2)].node)); |
@@ -4437,9 +4251,8 @@ |
break; |
case 230: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1523 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1531 "go.y" |
{ |
(yyvsp[(2) - (4)].node)->val = (yyvsp[(4) - (4)].val); |
(yyval.list) = list1((yyvsp[(2) - (4)].node)); |
@@ -4448,9 +4261,8 @@ |
break; |
case 231: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1529 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1537 "go.y" |
{ |
(yyvsp[(2) - (3)].node)->right = nod(OIND, (yyvsp[(2) - (3)].node)->right, N); |
(yyvsp[(2) - (3)].node)->val = (yyvsp[(3) - (3)].val); |
@@ -4459,9 +4271,8 @@ |
break; |
case 232: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1535 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1543 "go.y" |
{ |
(yyvsp[(3) - (5)].node)->right = nod(OIND, (yyvsp[(3) - (5)].node)->right, N); |
(yyvsp[(3) - (5)].node)->val = (yyvsp[(5) - (5)].val); |
@@ -4471,9 +4282,8 @@ |
break; |
case 233: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1542 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1550 "go.y" |
{ |
(yyvsp[(3) - (5)].node)->right = nod(OIND, (yyvsp[(3) - (5)].node)->right, N); |
(yyvsp[(3) - (5)].node)->val = (yyvsp[(5) - (5)].val); |
@@ -4483,9 +4293,8 @@ |
break; |
case 234: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1551 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1559 "go.y" |
{ |
Node *n; |
@@ -4497,9 +4306,8 @@ |
break; |
case 235: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1560 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1568 "go.y" |
{ |
Pkg *pkg; |
@@ -4515,18 +4323,16 @@ |
break; |
case 236: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1575 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1583 "go.y" |
{ |
(yyval.node) = embedded((yyvsp[(1) - (1)].sym)); |
} |
break; |
case 237: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1581 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1589 "go.y" |
{ |
(yyval.node) = nod(ODCLFIELD, (yyvsp[(1) - (2)].node), (yyvsp[(2) - (2)].node)); |
ifacedcl((yyval.node)); |
@@ -4534,18 +4340,16 @@ |
break; |
case 238: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1586 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1594 "go.y" |
{ |
(yyval.node) = nod(ODCLFIELD, N, oldname((yyvsp[(1) - (1)].sym))); |
} |
break; |
case 239: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1590 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1598 "go.y" |
{ |
(yyval.node) = nod(ODCLFIELD, N, oldname((yyvsp[(2) - (3)].sym))); |
yyerror("cannot parenthesize embedded type"); |
@@ -4553,9 +4357,8 @@ |
break; |
case 240: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1597 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1605 "go.y" |
{ |
// without func keyword |
(yyvsp[(2) - (4)].list) = checkarglist((yyvsp[(2) - (4)].list), 1); |
@@ -4566,9 +4369,8 @@ |
break; |
case 242: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1611 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1619 "go.y" |
{ |
(yyval.node) = nod(ONONAME, N, N); |
(yyval.node)->sym = (yyvsp[(1) - (2)].sym); |
@@ -4577,9 +4379,8 @@ |
break; |
case 243: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1617 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1625 "go.y" |
{ |
(yyval.node) = nod(ONONAME, N, N); |
(yyval.node)->sym = (yyvsp[(1) - (2)].sym); |
@@ -4588,72 +4389,64 @@ |
break; |
case 245: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1626 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1634 "go.y" |
{ |
(yyval.list) = list1((yyvsp[(1) - (1)].node)); |
} |
break; |
case 246: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1630 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1638 "go.y" |
{ |
(yyval.list) = list((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); |
} |
break; |
case 247: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1635 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1643 "go.y" |
{ |
(yyval.list) = nil; |
} |
break; |
case 248: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1639 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1647 "go.y" |
{ |
(yyval.list) = (yyvsp[(1) - (2)].list); |
} |
break; |
case 249: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1647 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1655 "go.y" |
{ |
(yyval.node) = N; |
} |
break; |
case 251: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1652 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1660 "go.y" |
{ |
(yyval.node) = liststmt((yyvsp[(1) - (1)].list)); |
} |
break; |
case 253: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1657 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1665 "go.y" |
{ |
(yyval.node) = N; |
} |
break; |
case 259: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1668 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1676 "go.y" |
{ |
(yyvsp[(1) - (2)].node) = nod(OLABEL, (yyvsp[(1) - (2)].node), N); |
(yyvsp[(1) - (2)].node)->sym = dclstack; // context, for goto restrictions |
@@ -4661,9 +4454,8 @@ |
break; |
case 260: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1673 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1681 "go.y" |
{ |
NodeList *l; |
@@ -4676,9 +4468,8 @@ |
break; |
case 261: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1683 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1691 "go.y" |
{ |
// will be converted to OFALL |
(yyval.node) = nod(OXFALL, N, N); |
@@ -4686,45 +4477,40 @@ |
break; |
case 262: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1688 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1696 "go.y" |
{ |
(yyval.node) = nod(OBREAK, (yyvsp[(2) - (2)].node), N); |
} |
break; |
case 263: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1692 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1700 "go.y" |
{ |
(yyval.node) = nod(OCONTINUE, (yyvsp[(2) - (2)].node), N); |
} |
break; |
case 264: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1696 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1704 "go.y" |
{ |
(yyval.node) = nod(OPROC, (yyvsp[(2) - (2)].node), N); |
} |
break; |
case 265: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1700 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1708 "go.y" |
{ |
(yyval.node) = nod(ODEFER, (yyvsp[(2) - (2)].node), N); |
} |
break; |
case 266: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1704 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1712 "go.y" |
{ |
(yyval.node) = nod(OGOTO, (yyvsp[(2) - (2)].node), N); |
(yyval.node)->sym = dclstack; // context, for goto restrictions |
@@ -4732,9 +4518,8 @@ |
break; |
case 267: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1709 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1717 "go.y" |
{ |
(yyval.node) = nod(ORETURN, N, N); |
(yyval.node)->list = (yyvsp[(2) - (2)].list); |
@@ -4754,9 +4539,8 @@ |
break; |
case 268: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1728 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1736 "go.y" |
{ |
(yyval.list) = nil; |
if((yyvsp[(1) - (1)].node) != N) |
@@ -4765,9 +4549,8 @@ |
break; |
case 269: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1734 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1742 "go.y" |
{ |
(yyval.list) = (yyvsp[(1) - (3)].list); |
if((yyvsp[(3) - (3)].node) != N) |
@@ -4776,243 +4559,216 @@ |
break; |
case 270: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1742 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1750 "go.y" |
{ |
(yyval.list) = list1((yyvsp[(1) - (1)].node)); |
} |
break; |
case 271: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1746 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1754 "go.y" |
{ |
(yyval.list) = list((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); |
} |
break; |
case 272: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1752 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1760 "go.y" |
{ |
(yyval.list) = list1((yyvsp[(1) - (1)].node)); |
} |
break; |
case 273: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1756 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1764 "go.y" |
{ |
(yyval.list) = list((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); |
} |
break; |
case 274: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1762 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1770 "go.y" |
{ |
(yyval.list) = list1((yyvsp[(1) - (1)].node)); |
} |
break; |
case 275: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1766 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1774 "go.y" |
{ |
(yyval.list) = list((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); |
} |
break; |
case 276: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1772 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1780 "go.y" |
{ |
(yyval.list) = list1((yyvsp[(1) - (1)].node)); |
} |
break; |
case 277: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1776 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1784 "go.y" |
{ |
(yyval.list) = list((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); |
} |
break; |
case 278: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1785 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1793 "go.y" |
{ |
(yyval.list) = list1((yyvsp[(1) - (1)].node)); |
} |
break; |
case 279: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1789 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1797 "go.y" |
{ |
(yyval.list) = list1((yyvsp[(1) - (1)].node)); |
} |
break; |
case 280: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1793 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1801 "go.y" |
{ |
(yyval.list) = list((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); |
} |
break; |
case 281: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1797 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1805 "go.y" |
{ |
(yyval.list) = list((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); |
} |
break; |
case 282: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1802 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1810 "go.y" |
{ |
(yyval.list) = nil; |
} |
break; |
case 283: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1806 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1814 "go.y" |
{ |
(yyval.list) = (yyvsp[(1) - (2)].list); |
} |
break; |
case 288: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1820 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1828 "go.y" |
{ |
(yyval.node) = N; |
} |
break; |
case 290: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1826 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1834 "go.y" |
{ |
(yyval.list) = nil; |
} |
break; |
case 292: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1832 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1840 "go.y" |
{ |
(yyval.node) = N; |
} |
break; |
case 294: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1838 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1846 "go.y" |
+ { |
+ (yyval.flist) = nil; |
+ } |
+ break; |
+ |
+ case 296: |
+/* Line 1792 of yacc.c */ |
+#line 1852 "go.y" |
{ |
(yyval.list) = nil; |
} |
break; |
- case 296: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1844 "go.y" |
+ case 298: |
+/* Line 1792 of yacc.c */ |
+#line 1858 "go.y" |
{ |
(yyval.list) = nil; |
} |
break; |
- case 298: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1850 "go.y" |
- { |
- (yyval.list) = nil; |
- } |
- break; |
- |
case 300: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1856 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1864 "go.y" |
{ |
(yyval.val).ctype = CTxxx; |
} |
break; |
case 302: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1866 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1874 "go.y" |
{ |
importimport((yyvsp[(2) - (4)].sym), (yyvsp[(3) - (4)].val).u.sval); |
} |
break; |
case 303: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1870 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1878 "go.y" |
{ |
importvar((yyvsp[(2) - (4)].sym), (yyvsp[(3) - (4)].type)); |
} |
break; |
case 304: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1874 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1882 "go.y" |
{ |
importconst((yyvsp[(2) - (5)].sym), types[TIDEAL], (yyvsp[(4) - (5)].node)); |
} |
break; |
case 305: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1878 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1886 "go.y" |
{ |
importconst((yyvsp[(2) - (6)].sym), (yyvsp[(3) - (6)].type), (yyvsp[(5) - (6)].node)); |
} |
break; |
case 306: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1882 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1890 "go.y" |
{ |
importtype((yyvsp[(2) - (4)].type), (yyvsp[(3) - (4)].type)); |
} |
break; |
case 307: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1886 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1894 "go.y" |
{ |
if((yyvsp[(2) - (4)].node) == N) { |
dclcontext = PEXTERN; // since we skip the funcbody below |
@@ -5033,9 +4789,8 @@ |
break; |
case 308: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1906 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1914 "go.y" |
{ |
(yyval.sym) = (yyvsp[(1) - (1)].sym); |
structpkg = (yyval.sym)->pkg; |
@@ -5043,9 +4798,8 @@ |
break; |
case 309: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1913 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1921 "go.y" |
{ |
(yyval.type) = pkgtype((yyvsp[(1) - (1)].sym)); |
importsym((yyvsp[(1) - (1)].sym), OTYPE); |
@@ -5053,18 +4807,16 @@ |
break; |
case 315: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1933 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1941 "go.y" |
{ |
(yyval.type) = pkgtype((yyvsp[(1) - (1)].sym)); |
} |
break; |
case 316: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1937 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1945 "go.y" |
{ |
// predefined name like uint8 |
(yyvsp[(1) - (1)].sym) = pkglookup((yyvsp[(1) - (1)].sym)->name, builtinpkg); |
@@ -5077,63 +4829,56 @@ |
break; |
case 317: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1947 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1955 "go.y" |
{ |
(yyval.type) = aindex(N, (yyvsp[(3) - (3)].type)); |
} |
break; |
case 318: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1951 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1959 "go.y" |
{ |
(yyval.type) = aindex(nodlit((yyvsp[(2) - (4)].val)), (yyvsp[(4) - (4)].type)); |
} |
break; |
case 319: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1955 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1963 "go.y" |
{ |
(yyval.type) = maptype((yyvsp[(3) - (5)].type), (yyvsp[(5) - (5)].type)); |
} |
break; |
case 320: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1959 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1967 "go.y" |
{ |
(yyval.type) = tostruct((yyvsp[(3) - (4)].list)); |
} |
break; |
case 321: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1963 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1971 "go.y" |
{ |
(yyval.type) = tointerface((yyvsp[(3) - (4)].list)); |
} |
break; |
case 322: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1967 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1975 "go.y" |
{ |
(yyval.type) = ptrto((yyvsp[(2) - (2)].type)); |
} |
break; |
case 323: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1971 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1979 "go.y" |
{ |
(yyval.type) = typ(TCHAN); |
(yyval.type)->type = (yyvsp[(2) - (2)].type); |
@@ -5142,9 +4887,8 @@ |
break; |
case 324: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1977 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1985 "go.y" |
{ |
(yyval.type) = typ(TCHAN); |
(yyval.type)->type = (yyvsp[(3) - (4)].type); |
@@ -5153,9 +4897,8 @@ |
break; |
case 325: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1983 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1991 "go.y" |
{ |
(yyval.type) = typ(TCHAN); |
(yyval.type)->type = (yyvsp[(3) - (3)].type); |
@@ -5164,9 +4907,8 @@ |
break; |
case 326: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1991 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 1999 "go.y" |
{ |
(yyval.type) = typ(TCHAN); |
(yyval.type)->type = (yyvsp[(3) - (3)].type); |
@@ -5175,30 +4917,25 @@ |
break; |
case 327: |
- |
-/* Line 1806 of yacc.c */ |
-#line 1999 "go.y" |
- { |
- (yyval.type) = functype(nil, (yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].list)); |
+/* Line 1792 of yacc.c */ |
+#line 2007 "go.y" |
+ { |
+ (yyval.type) = functype(nil, (yyvsp[(3) - (5)].flist), (yyvsp[(5) - (5)].flist)); |
} |
break; |
case 328: |
- |
-/* Line 1806 of yacc.c */ |
-#line 2005 "go.y" |
- { |
- (yyval.node) = nod(ODCLFIELD, N, typenod((yyvsp[(2) - (3)].type))); |
- if((yyvsp[(1) - (3)].sym)) |
- (yyval.node)->left = newname((yyvsp[(1) - (3)].sym)); |
- (yyval.node)->val = (yyvsp[(3) - (3)].val); |
+/* Line 1792 of yacc.c */ |
+#line 2013 "go.y" |
+ { |
+ (yyval.field) = fld((yyvsp[(1) - (3)].sym), (yyvsp[(2) - (3)].type)); |
+ (yyval.field)->tag = (yyvsp[(3) - (3)].val); |
} |
break; |
case 329: |
- |
-/* Line 1806 of yacc.c */ |
-#line 2012 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 2018 "go.y" |
{ |
Type *t; |
@@ -5206,18 +4943,15 @@ |
t->bound = -1; |
t->type = (yyvsp[(3) - (4)].type); |
- (yyval.node) = nod(ODCLFIELD, N, typenod(t)); |
- if((yyvsp[(1) - (4)].sym)) |
- (yyval.node)->left = newname((yyvsp[(1) - (4)].sym)); |
- (yyval.node)->isddd = 1; |
- (yyval.node)->val = (yyvsp[(4) - (4)].val); |
+ (yyval.field) = fld((yyvsp[(1) - (4)].sym), t); |
+ (yyval.field)->isddd = 1; |
+ (yyval.field)->tag = (yyvsp[(4) - (4)].val); |
} |
break; |
case 330: |
- |
-/* Line 1806 of yacc.c */ |
-#line 2028 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 2032 "go.y" |
{ |
Sym *s; |
@@ -5236,63 +4970,56 @@ |
break; |
case 331: |
- |
-/* Line 1806 of yacc.c */ |
-#line 2046 "go.y" |
- { |
- (yyval.node) = nod(ODCLFIELD, newname((yyvsp[(1) - (5)].sym)), typenod(functype(fakethis(), (yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].list)))); |
+/* Line 1792 of yacc.c */ |
+#line 2050 "go.y" |
+ { |
+ (yyval.node) = nod(ODCLFIELD, newname((yyvsp[(1) - (5)].sym)), typenod(functype(fakefldthis(), (yyvsp[(3) - (5)].flist), (yyvsp[(5) - (5)].flist)))); |
} |
break; |
case 332: |
- |
-/* Line 1806 of yacc.c */ |
-#line 2050 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 2054 "go.y" |
{ |
(yyval.node) = nod(ODCLFIELD, N, typenod((yyvsp[(1) - (1)].type))); |
} |
break; |
case 333: |
- |
-/* Line 1806 of yacc.c */ |
-#line 2055 "go.y" |
- { |
- (yyval.list) = nil; |
+/* Line 1792 of yacc.c */ |
+#line 2059 "go.y" |
+ { |
+ (yyval.flist) = nil; |
} |
break; |
case 335: |
- |
-/* Line 1806 of yacc.c */ |
-#line 2062 "go.y" |
- { |
- (yyval.list) = (yyvsp[(2) - (3)].list); |
+/* Line 1792 of yacc.c */ |
+#line 2066 "go.y" |
+ { |
+ (yyval.flist) = (yyvsp[(2) - (3)].flist); |
} |
break; |
case 336: |
- |
-/* Line 1806 of yacc.c */ |
-#line 2066 "go.y" |
- { |
- (yyval.list) = list1(nod(ODCLFIELD, N, typenod((yyvsp[(1) - (1)].type)))); |
+/* Line 1792 of yacc.c */ |
+#line 2070 "go.y" |
+ { |
+ (yyval.flist) = fldlist(nil, fld(S, (yyvsp[(1) - (1)].type))); |
} |
break; |
case 337: |
- |
-/* Line 1806 of yacc.c */ |
-#line 2076 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 2080 "go.y" |
{ |
(yyval.node) = nodlit((yyvsp[(1) - (1)].val)); |
} |
break; |
case 338: |
- |
-/* Line 1806 of yacc.c */ |
-#line 2080 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 2084 "go.y" |
{ |
(yyval.node) = nodlit((yyvsp[(2) - (2)].val)); |
switch((yyval.node)->val.ctype){ |
@@ -5310,9 +5037,8 @@ |
break; |
case 339: |
- |
-/* Line 1806 of yacc.c */ |
-#line 2095 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 2099 "go.y" |
{ |
(yyval.node) = oldname(pkglookup((yyvsp[(1) - (1)].sym)->name, builtinpkg)); |
if((yyval.node)->op != OLITERAL) |
@@ -5321,9 +5047,8 @@ |
break; |
case 341: |
- |
-/* Line 1806 of yacc.c */ |
-#line 2104 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 2108 "go.y" |
{ |
if((yyvsp[(2) - (5)].node)->val.ctype == CTRUNE && (yyvsp[(4) - (5)].node)->val.ctype == CTINT) { |
(yyval.node) = (yyvsp[(2) - (5)].node); |
@@ -5337,63 +5062,56 @@ |
break; |
case 344: |
- |
-/* Line 1806 of yacc.c */ |
-#line 2120 "go.y" |
+/* Line 1792 of yacc.c */ |
+#line 2124 "go.y" |
+ { |
+ (yyval.flist) = fldlist(nil, (yyvsp[(1) - (1)].field)); |
+ } |
+ break; |
+ |
+ case 345: |
+/* Line 1792 of yacc.c */ |
+#line 2128 "go.y" |
+ { |
+ (yyval.flist) = fldlist((yyvsp[(1) - (3)].flist), (yyvsp[(3) - (3)].field)); |
+ } |
+ break; |
+ |
+ case 346: |
+/* Line 1792 of yacc.c */ |
+#line 2134 "go.y" |
{ |
(yyval.list) = list1((yyvsp[(1) - (1)].node)); |
} |
break; |
- case 345: |
- |
-/* Line 1806 of yacc.c */ |
-#line 2124 "go.y" |
+ case 347: |
+/* Line 1792 of yacc.c */ |
+#line 2138 "go.y" |
{ |
(yyval.list) = list((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); |
} |
break; |
- case 346: |
- |
-/* Line 1806 of yacc.c */ |
-#line 2130 "go.y" |
+ case 348: |
+/* Line 1792 of yacc.c */ |
+#line 2144 "go.y" |
{ |
(yyval.list) = list1((yyvsp[(1) - (1)].node)); |
} |
break; |
- case 347: |
- |
-/* Line 1806 of yacc.c */ |
-#line 2134 "go.y" |
+ case 349: |
+/* Line 1792 of yacc.c */ |
+#line 2148 "go.y" |
{ |
(yyval.list) = list((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); |
} |
break; |
- case 348: |
- |
-/* Line 1806 of yacc.c */ |
-#line 2140 "go.y" |
- { |
- (yyval.list) = list1((yyvsp[(1) - (1)].node)); |
- } |
- break; |
- |
- case 349: |
- |
-/* Line 1806 of yacc.c */ |
-#line 2144 "go.y" |
- { |
- (yyval.list) = list((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); |
- } |
- break; |
- |
- |
- |
-/* Line 1806 of yacc.c */ |
-#line 5398 "y.tab.c" |
+ |
+/* Line 1792 of yacc.c */ |
+#line 5116 "y.tab.c" |
default: break; |
} |
/* User semantic actions sometimes alter yychar, and that requires |
@@ -5556,7 +5274,9 @@ |
YY_STACK_PRINT (yyss, yyssp); |
} |
+ YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN |
*++yyvsp = yylval; |
+ YY_IGNORE_MAYBE_UNINITIALIZED_END |
/* Shift the error token. */ |
@@ -5580,7 +5300,7 @@ |
yyresult = 1; |
goto yyreturn; |
-#if !defined(yyoverflow) || YYERROR_VERBOSE |
+#if !defined yyoverflow || YYERROR_VERBOSE |
/*-------------------------------------------------. |
| yyexhaustedlab -- memory exhaustion comes here. | |
`-------------------------------------------------*/ |
@@ -5622,9 +5342,8 @@ |
} |
- |
-/* Line 2067 of yacc.c */ |
-#line 2148 "go.y" |
+/* Line 2055 of yacc.c */ |
+#line 2152 "go.y" |
static void |
@@ -5637,4 +5356,3 @@ |
loophack = 1; |
} |
- |