Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code | Sign in
(624)

Unified Diff: src/cmd/gc/y.tab.c

Issue 6905055: cmd/gc: introduce a Field type to reduce Nodes used in ...
Patch Set: diff -r 7bc28d72d49c https://go.googlecode.com/hg/ Created 11 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Please Sign in to add in-line comments.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/cmd/gc/y.tab.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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;
}
-
« no previous file with comments | « src/cmd/gc/y.tab.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
RSS Feeds Recent Issues | This issue
This is Rietveld f62528b