-/* A Bison parser, made by GNU Bison 2.5. */
+/* A Bison parser, made by GNU Bison 2.6.2. */
/* 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
#define YYBISON 1
/* Bison version. */
-#define YYBISON_VERSION "2.5"
+#define YYBISON_VERSION "2.6.2"
/* Skeleton name. */
#define YYSKELETON_NAME "yacc.c"
/* Pull parsers. */
#define YYPULL 1
-/* Using locations. */
-#define YYLSP_NEEDED 0
/* Copy the first part of user declarations. */
-
-/* Line 268 of yacc.c */
+/* Line 336 of yacc.c */
#line 20 "go.y"
#include <u.h>
static void fixlbrace(int);
+/* Line 336 of yacc.c */
+#line 77 "y.tab.c"
-/* Line 268 of yacc.c */
-#line 81 "y.tab.c"
-
-/* Enabling traces. */
-#ifndef YYDEBUG
-# define YYDEBUG 0
-#endif
+# 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
# 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_Y_TAB_H
+# define YY_Y_TAB_H
+/* Enabling traces. */
+#ifndef YYDEBUG
+# define YYDEBUG 0
+#endif
+#if YYDEBUG
+extern int yydebug;
#endif
-
/* Tokens. */
#ifndef YYTOKENTYPE
-
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
typedef union YYSTYPE
{
-
-/* Line 293 of yacc.c */
+/* Line 350 of yacc.c */
#line 28 "go.y"
Node* node;
int i;
-
-/* Line 293 of yacc.c */
-#line 230 "y.tab.c"
+/* Line 350 of yacc.c */
+#line 232 "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;
-/* Copy the second part of user declarations. */
+#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_Y_TAB_H */
+/* Copy the second part of user declarations. */
-/* Line 343 of yacc.c */
-#line 242 "y.tab.c"
+/* Line 353 of yacc.c */
+#line 260 "y.tab.c"
#ifdef short
# undef short
# 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
#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
1811, 1815, 1819, 1837, 1844, 1855, 1856, 1857, 1860, 1861,
1864, 1868, 1878, 1882, 1886, 1890, 1894, 1898, 1902, 1908,
1914, 1922, 1930, 1936, 1943, 1959, 1977, 1981, 1987, 1990,
- 1993, 1997, 2007, 2011, 2026, 2034, 2035, 2045, 2046, 2049,
- 2053, 2059, 2063, 2069, 2073
+ 1993, 1997, 2007, 2011, 2026, 2034, 2035, 2047, 2048, 2051,
+ 2055, 2061, 2065, 2071, 2075
};
#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[] =
"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
#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; \
} \
#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; \
- } \
+# 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
+#define YYRHSLOC(Rhs, K) ((Rhs)[K])
+
+
/* This macro is provided for backward compatibility. */
YYSTYPE const * const yyvaluep;
#endif
{
+ FILE *yyo = yyoutput;
+ YYUSE (yyo);
if (!yyvaluep)
return;
# ifdef YYPRINT
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
break;
}
yyarg[yycount++] = yytname[yyx];
- yysize1 = yysize + yytnamerr (0, yytname[yyx]);
+ yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]);
if (! (yysize <= yysize1
&& yysize1 <= YYSTACK_ALLOC_MAXIMUM))
return 2;
}
-/* 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. */
`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. */
The wasted elements are never initialized. */
yyssp = yyss;
yyvsp = yyvs;
-
goto yysetstate;
/*------------------------------------------------------------.
switch (yyn)
{
case 2:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 128 "go.y"
{
xtop = concat(xtop, (yyvsp[(4) - (4)].list));
break;
case 3:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 134 "go.y"
{
prevlineno = lineno;
break;
case 4:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 141 "go.y"
{
mkpackage((yyvsp[(2) - (3)].sym)->name);
break;
case 5:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 151 "go.y"
{
importpkg = runtimepkg;
break;
case 6:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 162 "go.y"
{
importpkg = nil;
break;
case 12:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 176 "go.y"
{
Pkg *ipkg;
break;
case 13:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 209 "go.y"
{
// When an invalid import path is passed to importfile,
break;
case 16:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 224 "go.y"
{
// import with original name
break;
case 17:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 231 "go.y"
{
// import with given name
break;
case 18:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 238 "go.y"
{
// import into my name space
break;
case 19:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 247 "go.y"
{
if(importpkg->name == nil) {
break;
case 21:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 261 "go.y"
{
if(strcmp((yyvsp[(1) - (1)].sym)->name, "safe") == 0)
break;
case 22:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 267 "go.y"
{
defercheckwidth();
break;
case 23:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 271 "go.y"
{
resumecheckwidth();
break;
case 24:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 280 "go.y"
{
yyerror("empty top-level declaration");
break;
case 26:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 286 "go.y"
{
(yyval.list) = list1((yyvsp[(1) - (1)].node));
break;
case 27:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 290 "go.y"
{
yyerror("non-declaration statement outside function body");
break;
case 28:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 295 "go.y"
{
(yyval.list) = nil;
break;
case 29:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 301 "go.y"
{
(yyval.list) = (yyvsp[(2) - (2)].list);
break;
case 30:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 305 "go.y"
{
(yyval.list) = (yyvsp[(3) - (5)].list);
break;
case 31:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 309 "go.y"
{
(yyval.list) = nil;
break;
case 32:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 313 "go.y"
{
(yyval.list) = (yyvsp[(2) - (2)].list);
break;
case 33:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 319 "go.y"
{
(yyval.list) = (yyvsp[(3) - (5)].list);
break;
case 34:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 325 "go.y"
{
(yyval.list) = concat((yyvsp[(3) - (7)].list), (yyvsp[(5) - (7)].list));
break;
case 35:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 331 "go.y"
{
(yyval.list) = nil;
break;
case 36:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 336 "go.y"
{
(yyval.list) = list1((yyvsp[(2) - (2)].node));
break;
case 37:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 340 "go.y"
{
(yyval.list) = (yyvsp[(3) - (5)].list);
break;
case 38:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 344 "go.y"
{
(yyval.list) = nil;
break;
case 39:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 350 "go.y"
{
iota = 0;
break;
case 40:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 356 "go.y"
{
(yyval.list) = variter((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node), nil);
break;
case 41:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 360 "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 1787 of yacc.c */
#line 364 "go.y"
{
(yyval.list) = variter((yyvsp[(1) - (3)].list), nil, (yyvsp[(3) - (3)].list));
break;
case 43:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 370 "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 1787 of yacc.c */
#line 374 "go.y"
{
(yyval.list) = constiter((yyvsp[(1) - (3)].list), N, (yyvsp[(3) - (3)].list));
break;
case 46:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 381 "go.y"
{
(yyval.list) = constiter((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node), nil);
break;
case 47:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 385 "go.y"
{
(yyval.list) = constiter((yyvsp[(1) - (1)].list), N, nil);
break;
case 48:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 391 "go.y"
{
// different from dclname because the name
break;
case 49:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 400 "go.y"
{
(yyval.node) = typedcl1((yyvsp[(1) - (2)].node), (yyvsp[(2) - (2)].node), 1);
break;
case 50:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 406 "go.y"
{
(yyval.node) = (yyvsp[(1) - (1)].node);
break;
case 51:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 410 "go.y"
{
(yyval.node) = nod(OASOP, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));
break;
case 52:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 415 "go.y"
{
if((yyvsp[(1) - (3)].list)->next == nil && (yyvsp[(3) - (3)].list)->next == nil) {
break;
case 53:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 427 "go.y"
{
if((yyvsp[(3) - (3)].list)->n->op == OTYPESW) {
break;
case 54:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 443 "go.y"
{
(yyval.node) = nod(OASOP, (yyvsp[(1) - (2)].node), nodintconst(1));
break;
case 55:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 448 "go.y"
{
(yyval.node) = nod(OASOP, (yyvsp[(1) - (2)].node), nodintconst(1));
break;
case 56:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 455 "go.y"
{
Node *n, *nn;
break;
case 57:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 475 "go.y"
{
Node *n;
break;
case 58:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 493 "go.y"
{
// will be converted to OCASE
break;
case 59:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 502 "go.y"
{
Node *n, *nn;
break;
case 60:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 520 "go.y"
{
markdcl();
break;
case 61:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 524 "go.y"
{
(yyval.node) = liststmt((yyvsp[(3) - (4)].list));
break;
case 62:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 531 "go.y"
{
// If the last token read by the lexer was consumed
break;
case 63:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 541 "go.y"
{
int last;
break;
case 64:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 561 "go.y"
{
(yyval.list) = nil;
break;
case 65:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 565 "go.y"
{
(yyval.list) = list((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node));
break;
case 66:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 571 "go.y"
{
markdcl();
break;
case 67:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 575 "go.y"
{
(yyval.list) = (yyvsp[(3) - (4)].list);
break;
case 68:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 582 "go.y"
{
(yyval.node) = nod(ORANGE, N, (yyvsp[(4) - (4)].node));
break;
case 69:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 588 "go.y"
{
(yyval.node) = nod(ORANGE, N, (yyvsp[(4) - (4)].node));
break;
case 70:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 597 "go.y"
{
// init ; test ; incr
break;
case 71:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 608 "go.y"
{
// normal test
break;
case 73:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 617 "go.y"
{
(yyval.node) = (yyvsp[(1) - (2)].node);
break;
case 74:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 624 "go.y"
{
markdcl();
break;
case 75:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 628 "go.y"
{
(yyval.node) = (yyvsp[(3) - (3)].node);
break;
case 76:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 635 "go.y"
{
// test
break;
case 77:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 641 "go.y"
{
// init ; test
break;
case 78:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 652 "go.y"
{
markdcl();
break;
case 79:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 656 "go.y"
{
if((yyvsp[(3) - (3)].node)->ntest == N)
break;
case 80:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 661 "go.y"
{
(yyvsp[(3) - (5)].node)->nbody = (yyvsp[(5) - (5)].list);
break;
case 81:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 665 "go.y"
{
popdcl();
break;
case 82:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 673 "go.y"
{
(yyval.node) = N;
break;
case 83:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 677 "go.y"
{
(yyval.node) = (yyvsp[(2) - (2)].node);
break;
case 84:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 681 "go.y"
{
(yyval.node) = (yyvsp[(2) - (2)].node);
break;
case 85:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 687 "go.y"
{
markdcl();
break;
case 86:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 691 "go.y"
{
Node *n;
break;
case 87:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 699 "go.y"
{
(yyval.node) = (yyvsp[(3) - (7)].node);
break;
case 88:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 709 "go.y"
{
typesw = nod(OXXX, typesw, N);
break;
case 89:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 713 "go.y"
{
(yyval.node) = nod(OSELECT, N, N);
break;
case 91:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 726 "go.y"
{
(yyval.node) = nod(OOROR, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));
break;
case 92:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 730 "go.y"
{
(yyval.node) = nod(OANDAND, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));
break;
case 93:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 734 "go.y"
{
(yyval.node) = nod(OEQ, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));
break;
case 94:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 738 "go.y"
{
(yyval.node) = nod(ONE, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));
break;
case 95:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 742 "go.y"
{
(yyval.node) = nod(OLT, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));
break;
case 96:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 746 "go.y"
{
(yyval.node) = nod(OLE, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));
break;
case 97:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 750 "go.y"
{
(yyval.node) = nod(OGE, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));
break;
case 98:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 754 "go.y"
{
(yyval.node) = nod(OGT, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));
break;
case 99:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 758 "go.y"
{
(yyval.node) = nod(OADD, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));
break;
case 100:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 762 "go.y"
{
(yyval.node) = nod(OSUB, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));
break;
case 101:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 766 "go.y"
{
(yyval.node) = nod(OOR, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));
break;
case 102:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 770 "go.y"
{
(yyval.node) = nod(OXOR, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));
break;
case 103:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 774 "go.y"
{
(yyval.node) = nod(OMUL, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));
break;
case 104:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 778 "go.y"
{
(yyval.node) = nod(ODIV, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));
break;
case 105:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 782 "go.y"
{
(yyval.node) = nod(OMOD, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));
break;
case 106:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 786 "go.y"
{
(yyval.node) = nod(OAND, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));
break;
case 107:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 790 "go.y"
{
(yyval.node) = nod(OANDNOT, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));
break;
case 108:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 794 "go.y"
{
(yyval.node) = nod(OLSH, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));
break;
case 109:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 798 "go.y"
{
(yyval.node) = nod(ORSH, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));
break;
case 110:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 803 "go.y"
{
(yyval.node) = nod(OSEND, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));
break;
case 112:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 810 "go.y"
{
(yyval.node) = nod(OIND, (yyvsp[(2) - (2)].node), N);
break;
case 113:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 814 "go.y"
{
if((yyvsp[(2) - (2)].node)->op == OCOMPLIT) {
break;
case 114:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 825 "go.y"
{
(yyval.node) = nod(OPLUS, (yyvsp[(2) - (2)].node), N);
break;
case 115:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 829 "go.y"
{
(yyval.node) = nod(OMINUS, (yyvsp[(2) - (2)].node), N);
break;
case 116:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 833 "go.y"
{
(yyval.node) = nod(ONOT, (yyvsp[(2) - (2)].node), N);
break;
case 117:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 837 "go.y"
{
yyerror("the bitwise complement operator is ^");
break;
case 118:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 842 "go.y"
{
(yyval.node) = nod(OCOM, (yyvsp[(2) - (2)].node), N);
break;
case 119:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 846 "go.y"
{
(yyval.node) = nod(ORECV, (yyvsp[(2) - (2)].node), N);
break;
case 120:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 856 "go.y"
{
(yyval.node) = nod(OCALL, (yyvsp[(1) - (3)].node), N);
break;
case 121:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 860 "go.y"
{
(yyval.node) = nod(OCALL, (yyvsp[(1) - (5)].node), N);
break;
case 122:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 865 "go.y"
{
(yyval.node) = nod(OCALL, (yyvsp[(1) - (6)].node), N);
break;
case 123:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 873 "go.y"
{
(yyval.node) = nodlit((yyvsp[(1) - (1)].val));
break;
case 125:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 878 "go.y"
{
if((yyvsp[(1) - (3)].node)->op == OPACK) {
break;
case 126:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 889 "go.y"
{
(yyval.node) = nod(ODOTTYPE, (yyvsp[(1) - (5)].node), (yyvsp[(4) - (5)].node));
break;
case 127:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 893 "go.y"
{
(yyval.node) = nod(OTYPESW, N, (yyvsp[(1) - (5)].node));
break;
case 128:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 897 "go.y"
{
(yyval.node) = nod(OINDEX, (yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].node));
break;
case 129:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 901 "go.y"
{
(yyval.node) = nod(OSLICE, (yyvsp[(1) - (6)].node), nod(OKEY, (yyvsp[(3) - (6)].node), (yyvsp[(5) - (6)].node)));
break;
case 131:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 906 "go.y"
{
// conversion
break;
case 132:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 912 "go.y"
{
(yyval.node) = (yyvsp[(3) - (5)].node);
break;
case 133:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 919 "go.y"
{
(yyval.node) = (yyvsp[(3) - (5)].node);
break;
case 134:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 925 "go.y"
{
yyerror("cannot parenthesize type in composite literal");
break;
case 136:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 934 "go.y"
{
// composite expression.
break;
case 137:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 942 "go.y"
{
(yyval.node) = nod(OKEY, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));
break;
case 139:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 949 "go.y"
{
(yyval.node) = (yyvsp[(2) - (4)].node);
break;
case 141:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 957 "go.y"
{
(yyval.node) = (yyvsp[(2) - (3)].node);
break;
case 145:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 982 "go.y"
{
(yyval.i) = LBODY;
break;
case 146:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 986 "go.y"
{
(yyval.i) = '{';
break;
case 147:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 997 "go.y"
{
if((yyvsp[(1) - (1)].sym) == S)
break;
case 148:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1006 "go.y"
{
(yyval.node) = dclname((yyvsp[(1) - (1)].sym));
break;
case 149:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1011 "go.y"
{
(yyval.node) = N;
break;
case 151:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1018 "go.y"
{
(yyval.sym) = (yyvsp[(1) - (1)].sym);
break;
case 153:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1026 "go.y"
{
(yyval.sym) = S;
break;
case 154:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1032 "go.y"
{
if((yyvsp[(2) - (4)].val).u.sval->len == 0)
break;
case 155:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1041 "go.y"
{
(yyval.node) = oldname((yyvsp[(1) - (1)].sym));
break;
case 157:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1061 "go.y"
{
yyerror("final argument in variadic function missing type");
break;
case 158:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1066 "go.y"
{
(yyval.node) = nod(ODDD, (yyvsp[(2) - (2)].node), N);
break;
case 164:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1077 "go.y"
{
(yyval.node) = nod(OTPAREN, (yyvsp[(2) - (3)].node), N);
break;
case 168:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1086 "go.y"
{
(yyval.node) = nod(OIND, (yyvsp[(2) - (2)].node), N);
break;
case 173:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1096 "go.y"
{
(yyval.node) = nod(OTPAREN, (yyvsp[(2) - (3)].node), N);
break;
case 183:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1117 "go.y"
{
if((yyvsp[(1) - (3)].node)->op == OPACK) {
break;
case 184:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1130 "go.y"
{
(yyval.node) = nod(OTARRAY, (yyvsp[(2) - (4)].node), (yyvsp[(4) - (4)].node));
break;
case 185:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1134 "go.y"
{
// array literal of nelem
break;
case 186:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1139 "go.y"
{
(yyval.node) = nod(OTCHAN, (yyvsp[(2) - (2)].node), N);
break;
case 187:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1144 "go.y"
{
(yyval.node) = nod(OTCHAN, (yyvsp[(3) - (3)].node), N);
break;
case 188:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1149 "go.y"
{
(yyval.node) = nod(OTMAP, (yyvsp[(3) - (5)].node), (yyvsp[(5) - (5)].node));
break;
case 191:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1157 "go.y"
{
(yyval.node) = nod(OIND, (yyvsp[(2) - (2)].node), N);
break;
case 192:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1163 "go.y"
{
(yyval.node) = nod(OTCHAN, (yyvsp[(3) - (3)].node), N);
break;
case 193:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1170 "go.y"
{
(yyval.node) = nod(OTSTRUCT, N, N);
break;
case 194:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1176 "go.y"
{
(yyval.node) = nod(OTSTRUCT, N, N);
break;
case 195:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1183 "go.y"
{
(yyval.node) = nod(OTINTER, N, N);
break;
case 196:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1189 "go.y"
{
(yyval.node) = nod(OTINTER, N, N);
break;
case 197:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1200 "go.y"
{
(yyval.node) = (yyvsp[(2) - (3)].node);
break;
case 198:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1211 "go.y"
{
Node *t;
break;
case 199:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1240 "go.y"
{
Node *rcvr, *t;
break;
case 200:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1279 "go.y"
{
Sym *s;
break;
case 201:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1302 "go.y"
{
(yyval.node) = methodname1(newname((yyvsp[(4) - (8)].sym)), (yyvsp[(2) - (8)].list)->n->right);
break;
case 202:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1319 "go.y"
{
(yyvsp[(3) - (5)].list) = checkarglist((yyvsp[(3) - (5)].list), 1);
break;
case 203:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1327 "go.y"
{
(yyval.list) = nil;
break;
case 204:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1331 "go.y"
{
(yyval.list) = (yyvsp[(2) - (3)].list);
break;
case 205:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1339 "go.y"
{
(yyval.list) = nil;
break;
case 206:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1343 "go.y"
{
(yyval.list) = list1(nod(ODCLFIELD, N, (yyvsp[(1) - (1)].node)));
break;
case 207:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1347 "go.y"
{
(yyvsp[(2) - (3)].list) = checkarglist((yyvsp[(2) - (3)].list), 0);
break;
case 208:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1354 "go.y"
{
closurehdr((yyvsp[(1) - (1)].node));
break;
case 209:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1360 "go.y"
{
(yyval.node) = closurebody((yyvsp[(3) - (4)].list));
break;
case 210:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1365 "go.y"
{
(yyval.node) = closurebody(nil);
break;
case 211:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1376 "go.y"
{
(yyval.list) = nil;
break;
case 212:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1380 "go.y"
{
(yyval.list) = concat((yyvsp[(1) - (3)].list), (yyvsp[(2) - (3)].list));
break;
case 214:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1389 "go.y"
{
(yyval.list) = concat((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].list));
break;
case 216:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1396 "go.y"
{
(yyval.list) = concat((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].list));
break;
case 217:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1402 "go.y"
{
(yyval.list) = list1((yyvsp[(1) - (1)].node));
break;
case 218:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1406 "go.y"
{
(yyval.list) = list((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node));
break;
case 220:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1413 "go.y"
{
(yyval.list) = concat((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].list));
break;
case 221:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1419 "go.y"
{
(yyval.list) = list1((yyvsp[(1) - (1)].node));
break;
case 222:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1423 "go.y"
{
(yyval.list) = list((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node));
break;
case 223:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1429 "go.y"
{
NodeList *l;
break;
case 224:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1452 "go.y"
{
(yyvsp[(1) - (2)].node)->val = (yyvsp[(2) - (2)].val);
break;
case 225:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1457 "go.y"
{
(yyvsp[(2) - (4)].node)->val = (yyvsp[(4) - (4)].val);
break;
case 226:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1463 "go.y"
{
(yyvsp[(2) - (3)].node)->right = nod(OIND, (yyvsp[(2) - (3)].node)->right, N);
break;
case 227:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1469 "go.y"
{
(yyvsp[(3) - (5)].node)->right = nod(OIND, (yyvsp[(3) - (5)].node)->right, N);
break;
case 228:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1476 "go.y"
{
(yyvsp[(3) - (5)].node)->right = nod(OIND, (yyvsp[(3) - (5)].node)->right, N);
break;
case 229:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1485 "go.y"
{
Node *n;
break;
case 230:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1494 "go.y"
{
Pkg *pkg;
break;
case 231:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1509 "go.y"
{
(yyval.node) = embedded((yyvsp[(1) - (1)].sym));
break;
case 232:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1515 "go.y"
{
(yyval.node) = nod(ODCLFIELD, (yyvsp[(1) - (2)].node), (yyvsp[(2) - (2)].node));
break;
case 233:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1520 "go.y"
{
(yyval.node) = nod(ODCLFIELD, N, oldname((yyvsp[(1) - (1)].sym)));
break;
case 234:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1524 "go.y"
{
(yyval.node) = nod(ODCLFIELD, N, oldname((yyvsp[(2) - (3)].sym)));
break;
case 235:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1531 "go.y"
{
// without func keyword
break;
case 237:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1545 "go.y"
{
(yyval.node) = nod(ONONAME, N, N);
break;
case 238:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1551 "go.y"
{
(yyval.node) = nod(ONONAME, N, N);
break;
case 240:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1560 "go.y"
{
(yyval.list) = list1((yyvsp[(1) - (1)].node));
break;
case 241:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1564 "go.y"
{
(yyval.list) = list((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node));
break;
case 242:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1569 "go.y"
{
(yyval.list) = nil;
break;
case 243:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1573 "go.y"
{
(yyval.list) = (yyvsp[(1) - (2)].list);
break;
case 244:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1581 "go.y"
{
(yyval.node) = N;
break;
case 246:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1586 "go.y"
{
(yyval.node) = liststmt((yyvsp[(1) - (1)].list));
break;
case 248:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1591 "go.y"
{
(yyval.node) = N;
break;
case 254:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1602 "go.y"
{
(yyvsp[(1) - (2)].node) = nod(OLABEL, (yyvsp[(1) - (2)].node), N);
break;
case 255:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1607 "go.y"
{
NodeList *l;
break;
case 256:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1617 "go.y"
{
// will be converted to OFALL
break;
case 257:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1622 "go.y"
{
(yyval.node) = nod(OBREAK, (yyvsp[(2) - (2)].node), N);
break;
case 258:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1626 "go.y"
{
(yyval.node) = nod(OCONTINUE, (yyvsp[(2) - (2)].node), N);
break;
case 259:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1630 "go.y"
{
(yyval.node) = nod(OPROC, (yyvsp[(2) - (2)].node), N);
break;
case 260:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1634 "go.y"
{
(yyval.node) = nod(ODEFER, (yyvsp[(2) - (2)].node), N);
break;
case 261:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1638 "go.y"
{
(yyval.node) = nod(OGOTO, (yyvsp[(2) - (2)].node), N);
break;
case 262:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1643 "go.y"
{
(yyval.node) = nod(ORETURN, N, N);
break;
case 263:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1662 "go.y"
{
(yyval.list) = nil;
break;
case 264:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1668 "go.y"
{
(yyval.list) = (yyvsp[(1) - (3)].list);
break;
case 265:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1676 "go.y"
{
(yyval.list) = list1((yyvsp[(1) - (1)].node));
break;
case 266:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1680 "go.y"
{
(yyval.list) = list((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node));
break;
case 267:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1686 "go.y"
{
(yyval.list) = list1((yyvsp[(1) - (1)].node));
break;
case 268:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1690 "go.y"
{
(yyval.list) = list((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node));
break;
case 269:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1696 "go.y"
{
(yyval.list) = list1((yyvsp[(1) - (1)].node));
break;
case 270:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1700 "go.y"
{
(yyval.list) = list((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node));
break;
case 271:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1706 "go.y"
{
(yyval.list) = list1((yyvsp[(1) - (1)].node));
break;
case 272:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1710 "go.y"
{
(yyval.list) = list((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node));
break;
case 273:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1719 "go.y"
{
(yyval.list) = list1((yyvsp[(1) - (1)].node));
break;
case 274:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1723 "go.y"
{
(yyval.list) = list1((yyvsp[(1) - (1)].node));
break;
case 275:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1727 "go.y"
{
(yyval.list) = list((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node));
break;
case 276:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1731 "go.y"
{
(yyval.list) = list((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node));
break;
case 277:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1736 "go.y"
{
(yyval.list) = nil;
break;
case 278:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1740 "go.y"
{
(yyval.list) = (yyvsp[(1) - (2)].list);
break;
case 283:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1754 "go.y"
{
(yyval.node) = N;
break;
case 285:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1760 "go.y"
{
(yyval.list) = nil;
break;
case 287:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1766 "go.y"
{
(yyval.node) = N;
break;
case 289:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1772 "go.y"
{
(yyval.list) = nil;
break;
case 291:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1778 "go.y"
{
(yyval.list) = nil;
break;
case 293:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1784 "go.y"
{
(yyval.list) = nil;
break;
case 295:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1790 "go.y"
{
(yyval.val).ctype = CTxxx;
break;
case 297:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1800 "go.y"
{
importimport((yyvsp[(2) - (4)].sym), (yyvsp[(3) - (4)].val).u.sval);
break;
case 298:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1804 "go.y"
{
importvar((yyvsp[(2) - (4)].sym), (yyvsp[(3) - (4)].type));
break;
case 299:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1808 "go.y"
{
importconst((yyvsp[(2) - (5)].sym), types[TIDEAL], (yyvsp[(4) - (5)].node));
break;
case 300:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1812 "go.y"
{
importconst((yyvsp[(2) - (6)].sym), (yyvsp[(3) - (6)].type), (yyvsp[(5) - (6)].node));
break;
case 301:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1816 "go.y"
{
importtype((yyvsp[(2) - (4)].type), (yyvsp[(3) - (4)].type));
break;
case 302:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1820 "go.y"
{
if((yyvsp[(2) - (4)].node) == N)
break;
case 303:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1838 "go.y"
{
(yyval.sym) = (yyvsp[(1) - (1)].sym);
break;
case 304:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1845 "go.y"
{
(yyval.type) = pkgtype((yyvsp[(1) - (1)].sym));
break;
case 310:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1865 "go.y"
{
(yyval.type) = pkgtype((yyvsp[(1) - (1)].sym));
break;
case 311:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1869 "go.y"
{
// predefined name like uint8
break;
case 312:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1879 "go.y"
{
(yyval.type) = aindex(N, (yyvsp[(3) - (3)].type));
break;
case 313:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1883 "go.y"
{
(yyval.type) = aindex(nodlit((yyvsp[(2) - (4)].val)), (yyvsp[(4) - (4)].type));
break;
case 314:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1887 "go.y"
{
(yyval.type) = maptype((yyvsp[(3) - (5)].type), (yyvsp[(5) - (5)].type));
break;
case 315:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1891 "go.y"
{
(yyval.type) = tostruct((yyvsp[(3) - (4)].list));
break;
case 316:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1895 "go.y"
{
(yyval.type) = tointerface((yyvsp[(3) - (4)].list));
break;
case 317:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1899 "go.y"
{
(yyval.type) = ptrto((yyvsp[(2) - (2)].type));
break;
case 318:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1903 "go.y"
{
(yyval.type) = typ(TCHAN);
break;
case 319:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1909 "go.y"
{
(yyval.type) = typ(TCHAN);
break;
case 320:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1915 "go.y"
{
(yyval.type) = typ(TCHAN);
break;
case 321:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1923 "go.y"
{
(yyval.type) = typ(TCHAN);
break;
case 322:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1931 "go.y"
{
(yyval.type) = functype(nil, (yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].list));
break;
case 323:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1937 "go.y"
{
(yyval.node) = nod(ODCLFIELD, N, typenod((yyvsp[(2) - (3)].type)));
break;
case 324:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1944 "go.y"
{
Type *t;
break;
case 325:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1960 "go.y"
{
Sym *s;
break;
case 326:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1978 "go.y"
{
(yyval.node) = nod(ODCLFIELD, newname((yyvsp[(1) - (5)].sym)), typenod(functype(fakethis(), (yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].list))));
break;
case 327:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1982 "go.y"
{
(yyval.node) = nod(ODCLFIELD, N, typenod((yyvsp[(1) - (1)].type)));
break;
case 328:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1987 "go.y"
{
(yyval.list) = nil;
break;
case 330:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1994 "go.y"
{
(yyval.list) = (yyvsp[(2) - (3)].list);
break;
case 331:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 1998 "go.y"
{
(yyval.list) = list1(nod(ODCLFIELD, N, typenod((yyvsp[(1) - (1)].type))));
break;
case 332:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 2008 "go.y"
{
(yyval.node) = nodlit((yyvsp[(1) - (1)].val));
break;
case 333:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 2012 "go.y"
{
(yyval.node) = nodlit((yyvsp[(2) - (2)].val));
break;
case 334:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 2027 "go.y"
{
(yyval.node) = oldname(pkglookup((yyvsp[(1) - (1)].sym)->name, builtinpkg));
break;
case 336:
-
-/* Line 1806 of yacc.c */
+/* Line 1787 of yacc.c */
#line 2036 "go.y"
{
if((yyvsp[(2) - (5)].node)->val.ctype == CTRUNE && (yyvsp[(4) - (5)].node)->val.ctype == CTINT) {
mpaddfixfix((yyvsp[(2) - (5)].node)->val.u.xval, (yyvsp[(4) - (5)].node)->val.u.xval, 0);
break;
}
+ (yyvsp[(4) - (5)].node)->val.u.cval->real = (yyvsp[(4) - (5)].node)->val.u.cval->imag;
+ mpmovecflt(&(yyvsp[(4) - (5)].node)->val.u.cval->imag, 0.0);
(yyval.node) = nodcplxlit((yyvsp[(2) - (5)].node)->val, (yyvsp[(4) - (5)].node)->val);
}
break;
case 339:
-
-/* Line 1806 of yacc.c */
-#line 2050 "go.y"
+/* Line 1787 of yacc.c */
+#line 2052 "go.y"
{
(yyval.list) = list1((yyvsp[(1) - (1)].node));
}
break;
case 340:
-
-/* Line 1806 of yacc.c */
-#line 2054 "go.y"
+/* Line 1787 of yacc.c */
+#line 2056 "go.y"
{
(yyval.list) = list((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node));
}
break;
case 341:
-
-/* Line 1806 of yacc.c */
-#line 2060 "go.y"
+/* Line 1787 of yacc.c */
+#line 2062 "go.y"
{
(yyval.list) = list1((yyvsp[(1) - (1)].node));
}
break;
case 342:
-
-/* Line 1806 of yacc.c */
-#line 2064 "go.y"
+/* Line 1787 of yacc.c */
+#line 2066 "go.y"
{
(yyval.list) = list((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node));
}
break;
case 343:
-
-/* Line 1806 of yacc.c */
-#line 2070 "go.y"
+/* Line 1787 of yacc.c */
+#line 2072 "go.y"
{
(yyval.list) = list1((yyvsp[(1) - (1)].node));
}
break;
case 344:
-
-/* Line 1806 of yacc.c */
-#line 2074 "go.y"
+/* Line 1787 of yacc.c */
+#line 2076 "go.y"
{
(yyval.list) = list((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node));
}
break;
-
-/* Line 1806 of yacc.c */
-#line 5290 "y.tab.c"
+/* Line 1787 of yacc.c */
+#line 5035 "y.tab.c"
default: break;
}
/* User semantic actions sometimes alter yychar, and that requires
yyresult = 1;
goto yyreturn;
-#if !defined(yyoverflow) || YYERROR_VERBOSE
+#if !defined yyoverflow || YYERROR_VERBOSE
/*-------------------------------------------------.
| yyexhaustedlab -- memory exhaustion comes here. |
`-------------------------------------------------*/
}
-
-/* Line 2067 of yacc.c */
-#line 2078 "go.y"
+/* Line 2048 of yacc.c */
+#line 2080 "go.y"
static void
loophack = 1;
}
-