aboutsummaryrefslogtreecommitdiffstats
path: root/awkgram.c
diff options
context:
space:
mode:
Diffstat (limited to 'awkgram.c')
-rw-r--r--awkgram.c991
1 files changed, 499 insertions, 492 deletions
diff --git a/awkgram.c b/awkgram.c
index bd41a1a1..caa62a75 100644
--- a/awkgram.c
+++ b/awkgram.c
@@ -1,8 +1,8 @@
-/* A Bison parser, made by GNU Bison 3.7.1. */
+/* A Bison parser, made by GNU Bison 3.8. */
/* Bison implementation for Yacc-like parsers in C
- Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2020 Free Software Foundation,
+ Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation,
Inc.
This program is free software: you can redistribute it and/or modify
@@ -16,7 +16,7 @@
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* As a special exception, you may create a larger work that contains
part or all of the Bison parser skeleton and distribute that work
@@ -45,11 +45,11 @@
define necessary library symbols; they are noted "INFRINGES ON
USER NAME SPACE" below. */
-/* Identify Bison output. */
-#define YYBISON 1
+/* Identify Bison output, and Bison version. */
+#define YYBISON 30800
-/* Bison version. */
-#define YYBISON_VERSION "3.7.1"
+/* Bison version string. */
+#define YYBISON_VERSION "3.8"
/* Skeleton name. */
#define YYSKELETON_NAME "yacc.c"
@@ -80,6 +80,7 @@
#endif
static void yyerror(const char *m, ...) ATTRIBUTE_PRINTF_1;
+#define YYERROR_IS_DECLARED 1 /* for bison 3.8. sigh. */
static void error_ln(int line, const char *m, ...) ATTRIBUTE_PRINTF_2;
static void lintwarn_ln(int line, const char *m, ...) ATTRIBUTE_PRINTF_2;
static void warning_ln(int line, const char *m, ...) ATTRIBUTE_PRINTF_2;
@@ -232,7 +233,7 @@ extern double fmod(double x, double y);
#define YYSTYPE INSTRUCTION *
-#line 236 "awkgram.c"
+#line 237 "awkgram.c"
# ifndef YY_CAST
# ifdef __cplusplus
@@ -330,6 +331,7 @@ extern int yydebug;
typedef enum yytokentype yytoken_kind_t;
#endif
/* Token kinds. */
+#define YYEMPTY -2
#define YYEOF 0
#define YYerror 256
#define YYUNDEF 257
@@ -397,9 +399,17 @@ typedef int YYSTYPE;
extern YYSTYPE yylval;
+#if !defined yyerror && !defined YYERROR_IS_DECLARED
+void yyerror (const char *msg);
+#endif
+#if !defined yylex && !defined YYLEX_IS_DECLARED
+int yylex (void);
+#endif
+
int yyparse (void);
+
/* Symbol kind. */
enum yysymbol_kind_t
{
@@ -596,6 +606,18 @@ typedef int_least16_t yytype_int16;
typedef short yytype_int16;
#endif
+/* Work around bug in HP-UX 11.23, which defines these macros
+ incorrectly for preprocessor constants. This workaround can likely
+ be removed in 2023, as HPE has promised support for HP-UX 11.23
+ (aka HP-UX 11i v2) only through the end of 2022; see Table 2 of
+ <https://h20195.www2.hpe.com/V2/getpdf.aspx/4AA4-7673ENW.pdf>. */
+#ifdef __hpux
+# undef UINT_LEAST8_MAX
+# undef UINT_LEAST16_MAX
+# define UINT_LEAST8_MAX 255
+# define UINT_LEAST16_MAX 65535
+#endif
+
#if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__
typedef __UINT_LEAST8_TYPE__ yytype_uint8;
#elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \
@@ -693,17 +715,23 @@ typedef int yy_state_fast_t;
/* Suppress unused-variable warnings by "using" E. */
#if ! defined lint || defined __GNUC__
-# define YYUSE(E) ((void) (E))
+# define YY_USE(E) ((void) (E))
#else
-# define YYUSE(E) /* empty */
+# define YY_USE(E) /* empty */
#endif
-#if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
/* Suppress an incorrect diagnostic about yylval being uninitialized. */
-# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
+#if defined __GNUC__ && ! defined __ICC && 406 <= __GNUC__ * 100 + __GNUC_MINOR__
+# if __GNUC__ * 100 + __GNUC_MINOR__ < 407
+# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
+ _Pragma ("GCC diagnostic push") \
+ _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")
+# else
+# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
_Pragma ("GCC diagnostic push") \
_Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \
_Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
+# endif
# define YY_IGNORE_MAYBE_UNINITIALIZED_END \
_Pragma ("GCC diagnostic pop")
#else
@@ -923,30 +951,30 @@ static const yytype_int8 yytranslate[] =
};
#if YYDEBUG
- /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
+/* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
static const yytype_int16 yyrline[] =
{
- 0, 232, 232, 233, 238, 248, 252, 264, 272, 286,
- 297, 307, 317, 330, 340, 342, 347, 357, 359, 364,
- 366, 368, 374, 378, 383, 413, 425, 437, 443, 452,
- 470, 471, 482, 488, 496, 497, 501, 501, 535, 534,
- 568, 583, 585, 590, 591, 611, 616, 617, 621, 632,
- 637, 644, 752, 803, 853, 979, 1001, 1022, 1032, 1042,
- 1052, 1063, 1076, 1094, 1093, 1110, 1128, 1128, 1230, 1230,
- 1263, 1293, 1301, 1302, 1308, 1309, 1316, 1321, 1334, 1349,
- 1351, 1359, 1366, 1368, 1376, 1385, 1387, 1396, 1397, 1405,
- 1410, 1410, 1423, 1430, 1443, 1447, 1469, 1470, 1476, 1477,
- 1486, 1487, 1492, 1497, 1514, 1516, 1518, 1525, 1526, 1532,
- 1533, 1538, 1540, 1547, 1549, 1557, 1562, 1573, 1574, 1579,
- 1581, 1588, 1590, 1598, 1603, 1613, 1614, 1619, 1620, 1625,
- 1632, 1636, 1638, 1640, 1653, 1670, 1680, 1687, 1689, 1694,
- 1696, 1698, 1706, 1708, 1713, 1715, 1720, 1722, 1724, 1781,
- 1783, 1785, 1787, 1789, 1791, 1793, 1795, 1809, 1814, 1819,
- 1845, 1851, 1853, 1855, 1857, 1859, 1861, 1866, 1870, 1902,
- 1910, 1916, 1922, 1935, 1936, 1937, 1942, 1947, 1951, 1955,
- 1970, 1991, 1996, 2033, 2070, 2071, 2077, 2078, 2083, 2085,
- 2092, 2109, 2126, 2128, 2135, 2140, 2146, 2157, 2169, 2178,
- 2182, 2187, 2191, 2195, 2199, 2204, 2205, 2209, 2213, 2217
+ 0, 233, 233, 234, 239, 249, 253, 265, 273, 287,
+ 298, 308, 318, 331, 341, 343, 348, 358, 360, 365,
+ 367, 369, 375, 379, 384, 414, 426, 438, 444, 453,
+ 471, 472, 483, 489, 497, 498, 502, 502, 536, 535,
+ 569, 584, 586, 591, 592, 612, 617, 618, 622, 633,
+ 638, 645, 753, 804, 854, 980, 1002, 1023, 1033, 1043,
+ 1053, 1064, 1077, 1095, 1094, 1111, 1129, 1129, 1231, 1231,
+ 1264, 1294, 1302, 1303, 1309, 1310, 1317, 1322, 1335, 1350,
+ 1352, 1360, 1367, 1369, 1377, 1386, 1388, 1397, 1398, 1406,
+ 1411, 1411, 1424, 1431, 1444, 1448, 1470, 1471, 1477, 1478,
+ 1487, 1488, 1493, 1498, 1515, 1517, 1519, 1526, 1527, 1533,
+ 1534, 1539, 1541, 1548, 1550, 1558, 1563, 1574, 1575, 1580,
+ 1582, 1589, 1591, 1599, 1604, 1614, 1615, 1620, 1621, 1626,
+ 1633, 1637, 1639, 1641, 1654, 1671, 1681, 1688, 1690, 1695,
+ 1697, 1699, 1707, 1709, 1714, 1716, 1721, 1723, 1725, 1782,
+ 1784, 1786, 1788, 1790, 1792, 1794, 1796, 1810, 1815, 1820,
+ 1846, 1852, 1854, 1856, 1858, 1860, 1862, 1867, 1871, 1903,
+ 1911, 1917, 1923, 1936, 1937, 1938, 1943, 1948, 1952, 1956,
+ 1971, 1992, 1997, 2034, 2071, 2072, 2078, 2079, 2084, 2086,
+ 2093, 2110, 2127, 2129, 2136, 2141, 2147, 2158, 2170, 2179,
+ 2183, 2188, 2192, 2196, 2200, 2205, 2206, 2210, 2214, 2218
};
#endif
@@ -999,22 +1027,6 @@ yysymbol_name (yysymbol_kind_t yysymbol)
}
#endif
-#ifdef YYPRINT
-/* YYTOKNUM[NUM] -- (External) token number corresponding to the
- (internal) symbol number NUM (which must be that of a token). */
-static const yytype_int16 yytoknum[] =
-{
- 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
- 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
- 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
- 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
- 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
- 305, 306, 307, 308, 309, 63, 58, 44, 60, 62,
- 43, 45, 42, 47, 37, 33, 310, 94, 36, 40,
- 41, 64, 91, 93, 123, 125, 59
-};
-#endif
-
#define YYPACT_NINF (-276)
#define yypact_value_is_default(Yyn) \
@@ -1025,8 +1037,8 @@ static const yytype_int16 yytoknum[] =
#define yytable_value_is_error(Yyn) \
((Yyn) == YYTABLE_NINF)
- /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
- STATE-NUM. */
+/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
+ STATE-NUM. */
static const yytype_int16 yypact[] =
{
-276, 315, -276, -276, -45, -41, -276, -276, -276, -276,
@@ -1067,9 +1079,9 @@ static const yytype_int16 yypact[] =
-276, 389, 659, -276, 465, -276
};
- /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
- Performed when YYTABLE does not specify something else to do. Zero
- means the default is an error. */
+/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
+ Performed when YYTABLE does not specify something else to do. Zero
+ means the default is an error. */
static const yytype_uint8 yydefact[] =
{
2, 0, 1, 6, 0, 195, 177, 178, 25, 26,
@@ -1110,7 +1122,7 @@ static const yytype_uint8 yydefact[] =
43, 0, 0, 56, 0, 55
};
- /* YYPGOTO[NTERM-NUM]. */
+/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
-276, -276, -276, -276, -276, -276, -276, 253, -276, -276,
@@ -1123,10 +1135,10 @@ static const yytype_int16 yypgoto[] =
-30, -29
};
- /* YYDEFGOTO[NTERM-NUM]. */
+/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
- -1, 1, 28, 146, 149, 152, 29, 78, 53, 54,
+ 0, 1, 28, 146, 149, 152, 29, 78, 53, 54,
30, 187, 31, 84, 120, 32, 155, 79, 217, 218,
237, 219, 252, 264, 271, 316, 325, 338, 220, 274,
296, 306, 221, 153, 154, 132, 233, 234, 247, 275,
@@ -1136,9 +1148,9 @@ static const yytype_int16 yydefgoto[] =
340, 142
};
- /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
- positive, shift that token. If negative, reduce the rule whose
- number is the opposite. If YYTABLE_NINF, syntax error. */
+/* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
+ positive, shift that token. If negative, reduce the rule whose
+ number is the opposite. If YYTABLE_NINF, syntax error. */
static const yytype_int16 yytable[] =
{
34, 125, 81, 81, 141, 97, 270, 160, 128, 195,
@@ -1389,8 +1401,8 @@ static const yytype_int16 yycheck[] =
59
};
- /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
- symbol of state STATE-NUM. */
+/* YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of
+ state STATE-NUM. */
static const yytype_uint8 yystos[] =
{
0, 78, 0, 1, 3, 4, 7, 8, 18, 19,
@@ -1431,7 +1443,7 @@ static const yytype_uint8 yystos[] =
111, 93, 111, 95, 93, 95
};
- /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
+/* YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM. */
static const yytype_uint8 yyr1[] =
{
0, 77, 78, 78, 78, 78, 78, 79, 79, 79,
@@ -1457,7 +1469,7 @@ static const yytype_uint8 yyr1[] =
141, 141, 142, 143, 144, 145, 145, 146, 147, 148
};
- /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
+/* YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM. */
static const yytype_int8 yyr2[] =
{
0, 2, 0, 2, 2, 2, 2, 2, 2, 2,
@@ -1492,6 +1504,7 @@ enum { YYENOMEM = -2 };
#define YYACCEPT goto yyacceptlab
#define YYABORT goto yyabortlab
#define YYERROR goto yyerrorlab
+#define YYNOMEM goto yyexhaustedlab
#define YYRECOVERING() (!!yyerrstatus)
@@ -1532,10 +1545,7 @@ do { \
YYFPRINTF Args; \
} while (0)
-/* This macro is provided for backward compatibility. */
-# ifndef YY_LOCATION_PRINT
-# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
-# endif
+
# define YY_SYMBOL_PRINT(Title, Kind, Value, Location) \
@@ -1559,15 +1569,11 @@ yy_symbol_value_print (FILE *yyo,
yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep)
{
FILE *yyoutput = yyo;
- YYUSE (yyoutput);
+ YY_USE (yyoutput);
if (!yyvaluep)
return;
-# ifdef YYPRINT
- if (yykind < YYNTOKENS)
- YYPRINT (yyo, yytoknum[yykind], *yyvaluep);
-# endif
YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
- YYUSE (yykind);
+ YY_USE (yykind);
YY_IGNORE_MAYBE_UNINITIALIZED_END
}
@@ -1681,13 +1687,13 @@ static void
yydestruct (const char *yymsg,
yysymbol_kind_t yykind, YYSTYPE *yyvaluep)
{
- YYUSE (yyvaluep);
+ YY_USE (yyvaluep);
if (!yymsg)
yymsg = "Deleting";
YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp);
YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
- YYUSE (yykind);
+ YY_USE (yykind);
YY_IGNORE_MAYBE_UNINITIALIZED_END
}
@@ -1750,6 +1756,7 @@ yyparse (void)
YYDPRINTF ((stderr, "Starting parse\n"));
yychar = YYEMPTY; /* Cause a token to be read. */
+
goto yysetstate;
@@ -1775,7 +1782,7 @@ yysetstate:
if (yyss + yystacksize - 1 <= yyssp)
#if !defined yyoverflow && !defined YYSTACK_RELOCATE
- goto yyexhaustedlab;
+ YYNOMEM;
#else
{
/* Get the current used size of the three stacks, in elements. */
@@ -1803,7 +1810,7 @@ yysetstate:
# else /* defined YYSTACK_RELOCATE */
/* Extend the stack our own way. */
if (YYMAXDEPTH <= yystacksize)
- goto yyexhaustedlab;
+ YYNOMEM;
yystacksize *= 2;
if (YYMAXDEPTH < yystacksize)
yystacksize = YYMAXDEPTH;
@@ -1814,7 +1821,7 @@ yysetstate:
YY_CAST (union yyalloc *,
YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize))));
if (! yyptr)
- goto yyexhaustedlab;
+ YYNOMEM;
YYSTACK_RELOCATE (yyss_alloc, yyss);
YYSTACK_RELOCATE (yyvs_alloc, yyvs);
# undef YYSTACK_RELOCATE
@@ -1836,6 +1843,7 @@ yysetstate:
}
#endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */
+
if (yystate == YYFINAL)
YYACCEPT;
@@ -1948,22 +1956,22 @@ yyreduce:
switch (yyn)
{
case 2: /* program: %empty */
-#line 232 "awkgram.y"
+#line 233 "awkgram.y"
{ yyval = NULL; }
-#line 1954 "awkgram.c"
+#line 1962 "awkgram.c"
break;
case 3: /* program: program rule */
-#line 234 "awkgram.y"
+#line 235 "awkgram.y"
{
rule = 0;
yyerrok;
}
-#line 1963 "awkgram.c"
+#line 1971 "awkgram.c"
break;
case 4: /* program: program nls */
-#line 239 "awkgram.y"
+#line 240 "awkgram.y"
{
if (yyvsp[0] != NULL) {
if (yyvsp[-1] == NULL)
@@ -1973,19 +1981,19 @@ yyreduce:
}
yyval = yyvsp[-1];
}
-#line 1977 "awkgram.c"
+#line 1985 "awkgram.c"
break;
case 5: /* program: program LEX_EOF */
-#line 249 "awkgram.y"
+#line 250 "awkgram.y"
{
next_sourcefile();
}
-#line 1985 "awkgram.c"
+#line 1993 "awkgram.c"
break;
case 6: /* program: program error */
-#line 253 "awkgram.y"
+#line 254 "awkgram.y"
{
rule = 0;
/*
@@ -1994,11 +2002,11 @@ yyreduce:
*/
/* yyerrok; */
}
-#line 1998 "awkgram.c"
+#line 2006 "awkgram.c"
break;
case 7: /* rule: pattern action */
-#line 265 "awkgram.y"
+#line 266 "awkgram.y"
{
(void) append_rule(yyvsp[-1], yyvsp[0]);
if (pending_comment != NULL) {
@@ -2006,11 +2014,11 @@ yyreduce:
pending_comment = NULL;
}
}
-#line 2010 "awkgram.c"
+#line 2018 "awkgram.c"
break;
case 8: /* rule: pattern statement_term */
-#line 273 "awkgram.y"
+#line 274 "awkgram.y"
{
if (rule != Rule) {
msg(_("%s blocks must have an action part"), ruletab[rule]);
@@ -2024,11 +2032,11 @@ yyreduce:
(void) append_rule(yyvsp[-1], NULL);
}
}
-#line 2028 "awkgram.c"
+#line 2036 "awkgram.c"
break;
case 9: /* rule: function_prologue action */
-#line 287 "awkgram.y"
+#line 288 "awkgram.y"
{
in_function = false;
(void) mk_function(yyvsp[-1], yyvsp[0]);
@@ -2039,11 +2047,11 @@ yyreduce:
}
yyerrok;
}
-#line 2043 "awkgram.c"
+#line 2051 "awkgram.c"
break;
case 10: /* rule: '@' LEX_INCLUDE source statement_term */
-#line 298 "awkgram.y"
+#line 299 "awkgram.y"
{
want_source = false;
at_seen = false;
@@ -2053,11 +2061,11 @@ yyreduce:
}
yyerrok;
}
-#line 2057 "awkgram.c"
+#line 2065 "awkgram.c"
break;
case 11: /* rule: '@' LEX_LOAD library statement_term */
-#line 308 "awkgram.y"
+#line 309 "awkgram.y"
{
want_source = false;
at_seen = false;
@@ -2067,11 +2075,11 @@ yyreduce:
}
yyerrok;
}
-#line 2071 "awkgram.c"
+#line 2079 "awkgram.c"
break;
case 12: /* rule: '@' LEX_NAMESPACE namespace statement_term */
-#line 318 "awkgram.y"
+#line 319 "awkgram.y"
{
want_source = false;
at_seen = false;
@@ -2081,11 +2089,11 @@ yyreduce:
yyerrok;
}
-#line 2085 "awkgram.c"
+#line 2093 "awkgram.c"
break;
case 13: /* source: FILENAME */
-#line 331 "awkgram.y"
+#line 332 "awkgram.y"
{
void *srcfile = NULL;
@@ -2095,23 +2103,23 @@ yyreduce:
bcfree(yyvsp[0]);
yyval = (INSTRUCTION *) srcfile;
}
-#line 2099 "awkgram.c"
+#line 2107 "awkgram.c"
break;
case 14: /* source: FILENAME error */
-#line 341 "awkgram.y"
+#line 342 "awkgram.y"
{ yyval = NULL; }
-#line 2105 "awkgram.c"
+#line 2113 "awkgram.c"
break;
case 15: /* source: error */
-#line 343 "awkgram.y"
+#line 344 "awkgram.y"
{ yyval = NULL; }
-#line 2111 "awkgram.c"
+#line 2119 "awkgram.c"
break;
case 16: /* library: FILENAME */
-#line 348 "awkgram.y"
+#line 349 "awkgram.y"
{
void *srcfile;
@@ -2121,58 +2129,58 @@ yyreduce:
bcfree(yyvsp[0]);
yyval = (INSTRUCTION *) srcfile;
}
-#line 2125 "awkgram.c"
+#line 2133 "awkgram.c"
break;
case 17: /* library: FILENAME error */
-#line 358 "awkgram.y"
+#line 359 "awkgram.y"
{ yyval = NULL; }
-#line 2131 "awkgram.c"
+#line 2139 "awkgram.c"
break;
case 18: /* library: error */
-#line 360 "awkgram.y"
+#line 361 "awkgram.y"
{ yyval = NULL; }
-#line 2137 "awkgram.c"
+#line 2145 "awkgram.c"
break;
case 19: /* namespace: FILENAME */
-#line 365 "awkgram.y"
+#line 366 "awkgram.y"
{ yyval = yyvsp[0]; }
-#line 2143 "awkgram.c"
+#line 2151 "awkgram.c"
break;
case 20: /* namespace: FILENAME error */
-#line 367 "awkgram.y"
+#line 368 "awkgram.y"
{ yyval = NULL; }
-#line 2149 "awkgram.c"
+#line 2157 "awkgram.c"
break;
case 21: /* namespace: error */
-#line 369 "awkgram.y"
+#line 370 "awkgram.y"
{ yyval = NULL; }
-#line 2155 "awkgram.c"
+#line 2163 "awkgram.c"
break;
case 22: /* pattern: %empty */
-#line 374 "awkgram.y"
+#line 375 "awkgram.y"
{
rule = Rule;
yyval = NULL;
}
-#line 2164 "awkgram.c"
+#line 2172 "awkgram.c"
break;
case 23: /* pattern: exp */
-#line 379 "awkgram.y"
+#line 380 "awkgram.y"
{
rule = Rule;
}
-#line 2172 "awkgram.c"
+#line 2180 "awkgram.c"
break;
case 24: /* pattern: exp comma exp */
-#line 384 "awkgram.y"
+#line 385 "awkgram.y"
{
INSTRUCTION *tp;
@@ -2202,11 +2210,11 @@ yyreduce:
yyval = list_append(list_merge(yyvsp[-2], yyvsp[0]), tp);
rule = Rule;
}
-#line 2206 "awkgram.c"
+#line 2214 "awkgram.c"
break;
case 25: /* pattern: LEX_BEGIN */
-#line 414 "awkgram.y"
+#line 415 "awkgram.y"
{
static int begin_seen = 0;
@@ -2218,11 +2226,11 @@ yyreduce:
yyvsp[0]->source_file = source;
yyval = yyvsp[0];
}
-#line 2222 "awkgram.c"
+#line 2230 "awkgram.c"
break;
case 26: /* pattern: LEX_END */
-#line 426 "awkgram.y"
+#line 427 "awkgram.y"
{
static int end_seen = 0;
@@ -2234,31 +2242,31 @@ yyreduce:
yyvsp[0]->source_file = source;
yyval = yyvsp[0];
}
-#line 2238 "awkgram.c"
+#line 2246 "awkgram.c"
break;
case 27: /* pattern: LEX_BEGINFILE */
-#line 438 "awkgram.y"
+#line 439 "awkgram.y"
{
yyvsp[0]->in_rule = rule = BEGINFILE;
yyvsp[0]->source_file = source;
yyval = yyvsp[0];
}
-#line 2248 "awkgram.c"
+#line 2256 "awkgram.c"
break;
case 28: /* pattern: LEX_ENDFILE */
-#line 444 "awkgram.y"
+#line 445 "awkgram.y"
{
yyvsp[0]->in_rule = rule = ENDFILE;
yyvsp[0]->source_file = source;
yyval = yyvsp[0];
}
-#line 2258 "awkgram.c"
+#line 2266 "awkgram.c"
break;
case 29: /* action: l_brace statements r_brace opt_semi opt_nls */
-#line 453 "awkgram.y"
+#line 454 "awkgram.y"
{
INSTRUCTION *ip = make_braced_statements(yyvsp[-4], yyvsp[-3], yyvsp[-2]);
@@ -2273,11 +2281,11 @@ yyreduce:
yyval = ip;
}
-#line 2277 "awkgram.c"
+#line 2285 "awkgram.c"
break;
case 31: /* func_name: FUNC_CALL */
-#line 472 "awkgram.y"
+#line 473 "awkgram.y"
{
const char *name = yyvsp[0]->lextok;
char *qname = qualify_name(name, strlen(name));
@@ -2288,36 +2296,36 @@ yyreduce:
}
yyval = yyvsp[0];
}
-#line 2292 "awkgram.c"
+#line 2300 "awkgram.c"
break;
case 32: /* func_name: lex_builtin */
-#line 483 "awkgram.y"
+#line 484 "awkgram.y"
{
yyerror(_("`%s' is a built-in function, it cannot be redefined"),
tokstart);
YYABORT;
}
-#line 2302 "awkgram.c"
+#line 2310 "awkgram.c"
break;
case 33: /* func_name: '@' LEX_EVAL */
-#line 489 "awkgram.y"
+#line 490 "awkgram.y"
{
yyval = yyvsp[0];
at_seen = false;
}
-#line 2311 "awkgram.c"
+#line 2319 "awkgram.c"
break;
case 36: /* $@1: %empty */
-#line 501 "awkgram.y"
+#line 502 "awkgram.y"
{ want_param_names = FUNC_HEADER; }
-#line 2317 "awkgram.c"
+#line 2325 "awkgram.c"
break;
case 37: /* function_prologue: LEX_FUNCTION func_name '(' $@1 opt_param_list r_paren opt_nls */
-#line 502 "awkgram.y"
+#line 503 "awkgram.y"
{
INSTRUCTION *func_comment = NULL;
// Merge any comments found in the parameter list with those
@@ -2343,17 +2351,17 @@ yyreduce:
yyval = yyvsp[-6];
want_param_names = FUNC_BODY;
}
-#line 2347 "awkgram.c"
+#line 2355 "awkgram.c"
break;
case 38: /* $@2: %empty */
-#line 535 "awkgram.y"
+#line 536 "awkgram.y"
{ want_regexp = true; }
-#line 2353 "awkgram.c"
+#line 2361 "awkgram.c"
break;
case 39: /* regexp: a_slash $@2 REGEXP */
-#line 537 "awkgram.y"
+#line 538 "awkgram.y"
{
NODE *n, *exp;
char *re;
@@ -2382,11 +2390,11 @@ yyreduce:
yyval->opcode = Op_match_rec;
yyval->memory = n;
}
-#line 2386 "awkgram.c"
+#line 2394 "awkgram.c"
break;
case 40: /* typed_regexp: TYPED_REGEXP */
-#line 569 "awkgram.y"
+#line 570 "awkgram.y"
{
char *re;
size_t len;
@@ -2399,23 +2407,23 @@ yyreduce:
yyval->opcode = Op_push_re;
yyval->memory = make_typed_regex(re, len);
}
-#line 2403 "awkgram.c"
+#line 2411 "awkgram.c"
break;
case 41: /* a_slash: '/' */
-#line 584 "awkgram.y"
+#line 585 "awkgram.y"
{ bcfree(yyvsp[0]); }
-#line 2409 "awkgram.c"
+#line 2417 "awkgram.c"
break;
case 43: /* statements: %empty */
-#line 590 "awkgram.y"
+#line 591 "awkgram.y"
{ yyval = NULL; }
-#line 2415 "awkgram.c"
+#line 2423 "awkgram.c"
break;
case 44: /* statements: statements statement */
-#line 592 "awkgram.y"
+#line 593 "awkgram.y"
{
if (yyvsp[0] == NULL) {
yyval = yyvsp[-1];
@@ -2435,29 +2443,29 @@ yyreduce:
yyerrok;
}
-#line 2439 "awkgram.c"
+#line 2447 "awkgram.c"
break;
case 45: /* statements: statements error */
-#line 612 "awkgram.y"
+#line 613 "awkgram.y"
{ yyval = NULL; }
-#line 2445 "awkgram.c"
+#line 2453 "awkgram.c"
break;
case 46: /* statement_term: nls */
-#line 616 "awkgram.y"
+#line 617 "awkgram.y"
{ yyval = yyvsp[0]; }
-#line 2451 "awkgram.c"
+#line 2459 "awkgram.c"
break;
case 47: /* statement_term: semi opt_nls */
-#line 617 "awkgram.y"
+#line 618 "awkgram.y"
{ yyval = yyvsp[0]; }
-#line 2457 "awkgram.c"
+#line 2465 "awkgram.c"
break;
case 48: /* statement: semi opt_nls */
-#line 622 "awkgram.y"
+#line 623 "awkgram.y"
{
if (yyvsp[0] != NULL) {
INSTRUCTION *ip;
@@ -2468,31 +2476,31 @@ yyreduce:
} else
yyval = NULL;
}
-#line 2472 "awkgram.c"
+#line 2480 "awkgram.c"
break;
case 49: /* statement: l_brace statements r_brace */
-#line 633 "awkgram.y"
+#line 634 "awkgram.y"
{
trailing_comment = yyvsp[0]; // NULL or comment
yyval = make_braced_statements(yyvsp[-2], yyvsp[-1], yyvsp[0]);
}
-#line 2481 "awkgram.c"
+#line 2489 "awkgram.c"
break;
case 50: /* statement: if_statement */
-#line 638 "awkgram.y"
+#line 639 "awkgram.y"
{
if (do_pretty_print)
yyval = list_prepend(yyvsp[0], instruction(Op_exec_count));
else
yyval = yyvsp[0];
}
-#line 2492 "awkgram.c"
+#line 2500 "awkgram.c"
break;
case 51: /* statement: LEX_SWITCH '(' exp r_paren opt_nls l_brace case_statements opt_nls r_brace */
-#line 645 "awkgram.y"
+#line 646 "awkgram.y"
{
INSTRUCTION *dflt, *curr = NULL, *cexp, *cstmt;
INSTRUCTION *ip, *nextc, *tbreak;
@@ -2600,11 +2608,11 @@ yyreduce:
break_allowed--;
fix_break_continue(ip, tbreak, NULL);
}
-#line 2604 "awkgram.c"
+#line 2612 "awkgram.c"
break;
case 52: /* statement: LEX_WHILE '(' exp r_paren opt_nls statement */
-#line 753 "awkgram.y"
+#line 754 "awkgram.y"
{
/*
* -----------------
@@ -2655,11 +2663,11 @@ yyreduce:
continue_allowed--;
fix_break_continue(ip, tbreak, tcont);
}
-#line 2659 "awkgram.c"
+#line 2667 "awkgram.c"
break;
case 53: /* statement: LEX_DO opt_nls statement LEX_WHILE '(' exp r_paren opt_nls */
-#line 804 "awkgram.y"
+#line 805 "awkgram.y"
{
/*
* -----------------
@@ -2709,11 +2717,11 @@ yyreduce:
/* else
$1 and $4 are NULLs */
}
-#line 2713 "awkgram.c"
+#line 2721 "awkgram.c"
break;
case 54: /* statement: LEX_FOR '(' NAME LEX_IN simple_variable r_paren opt_nls statement */
-#line 854 "awkgram.y"
+#line 855 "awkgram.y"
{
INSTRUCTION *ip;
char *var_name = yyvsp[-5]->lextok;
@@ -2839,11 +2847,11 @@ regular_loop:
break_allowed--;
continue_allowed--;
}
-#line 2843 "awkgram.c"
+#line 2851 "awkgram.c"
break;
case 55: /* statement: LEX_FOR '(' opt_simple_stmt semi opt_nls exp semi opt_nls opt_simple_stmt r_paren opt_nls statement */
-#line 980 "awkgram.y"
+#line 981 "awkgram.y"
{
if (yyvsp[-7] != NULL) {
merge_comments(yyvsp[-7], NULL);
@@ -2865,11 +2873,11 @@ regular_loop:
break_allowed--;
continue_allowed--;
}
-#line 2869 "awkgram.c"
+#line 2877 "awkgram.c"
break;
case 56: /* statement: LEX_FOR '(' opt_simple_stmt semi opt_nls semi opt_nls opt_simple_stmt r_paren opt_nls statement */
-#line 1002 "awkgram.y"
+#line 1003 "awkgram.y"
{
if (yyvsp[-6] != NULL) {
merge_comments(yyvsp[-6], NULL);
@@ -2890,22 +2898,22 @@ regular_loop:
break_allowed--;
continue_allowed--;
}
-#line 2894 "awkgram.c"
+#line 2902 "awkgram.c"
break;
case 57: /* statement: non_compound_stmt */
-#line 1023 "awkgram.y"
+#line 1024 "awkgram.y"
{
if (do_pretty_print)
yyval = list_prepend(yyvsp[0], instruction(Op_exec_count));
else
yyval = yyvsp[0];
}
-#line 2905 "awkgram.c"
+#line 2913 "awkgram.c"
break;
case 58: /* non_compound_stmt: LEX_BREAK statement_term */
-#line 1033 "awkgram.y"
+#line 1034 "awkgram.y"
{
if (! break_allowed)
error_ln(yyvsp[-1]->source_line,
@@ -2915,11 +2923,11 @@ regular_loop:
if (yyvsp[0] != NULL)
yyval = list_append(yyval, yyvsp[0]);
}
-#line 2919 "awkgram.c"
+#line 2927 "awkgram.c"
break;
case 59: /* non_compound_stmt: LEX_CONTINUE statement_term */
-#line 1043 "awkgram.y"
+#line 1044 "awkgram.y"
{
if (! continue_allowed)
error_ln(yyvsp[-1]->source_line,
@@ -2929,11 +2937,11 @@ regular_loop:
if (yyvsp[0] != NULL)
yyval = list_append(yyval, yyvsp[0]);
}
-#line 2933 "awkgram.c"
+#line 2941 "awkgram.c"
break;
case 60: /* non_compound_stmt: LEX_NEXT statement_term */
-#line 1053 "awkgram.y"
+#line 1054 "awkgram.y"
{
/* if inside function (rule = 0), resolve context at run-time */
if (rule && rule != Rule)
@@ -2944,11 +2952,11 @@ regular_loop:
if (yyvsp[0] != NULL)
yyval = list_append(yyval, yyvsp[0]);
}
-#line 2948 "awkgram.c"
+#line 2956 "awkgram.c"
break;
case 61: /* non_compound_stmt: LEX_NEXTFILE statement_term */
-#line 1064 "awkgram.y"
+#line 1065 "awkgram.y"
{
/* if inside function (rule = 0), resolve context at run-time */
if (rule == BEGIN || rule == END || rule == ENDFILE)
@@ -2961,11 +2969,11 @@ regular_loop:
if (yyvsp[0] != NULL)
yyval = list_append(yyval, yyvsp[0]);
}
-#line 2965 "awkgram.c"
+#line 2973 "awkgram.c"
break;
case 62: /* non_compound_stmt: LEX_EXIT opt_exp statement_term */
-#line 1077 "awkgram.y"
+#line 1078 "awkgram.y"
{
/* Initialize the two possible jump targets, the actual target
* is resolved at run-time.
@@ -2982,20 +2990,20 @@ regular_loop:
if (yyvsp[0] != NULL)
yyval = list_append(yyval, yyvsp[0]);
}
-#line 2986 "awkgram.c"
+#line 2994 "awkgram.c"
break;
case 63: /* $@3: %empty */
-#line 1094 "awkgram.y"
+#line 1095 "awkgram.y"
{
if (! in_function)
yyerror(_("`return' used outside function context"));
}
-#line 2995 "awkgram.c"
+#line 3003 "awkgram.c"
break;
case 64: /* non_compound_stmt: LEX_RETURN $@3 opt_fcall_exp statement_term */
-#line 1097 "awkgram.y"
+#line 1098 "awkgram.y"
{
if (called_from_eval)
yyvsp[-3]->opcode = Op_K_return_from_eval;
@@ -3009,28 +3017,28 @@ regular_loop:
if (yyvsp[0] != NULL)
yyval = list_append(yyval, yyvsp[0]);
}
-#line 3013 "awkgram.c"
+#line 3021 "awkgram.c"
break;
case 65: /* non_compound_stmt: simple_stmt statement_term */
-#line 1111 "awkgram.y"
+#line 1112 "awkgram.y"
{
if (yyvsp[0] != NULL)
yyval = list_append(yyvsp[-1], yyvsp[0]);
else
yyval = yyvsp[-1];
}
-#line 3024 "awkgram.c"
+#line 3032 "awkgram.c"
break;
case 66: /* $@4: %empty */
-#line 1128 "awkgram.y"
+#line 1129 "awkgram.y"
{ in_print = true; in_parens = 0; }
-#line 3030 "awkgram.c"
+#line 3038 "awkgram.c"
break;
case 67: /* simple_stmt: print $@4 print_expression_list output_redir */
-#line 1129 "awkgram.y"
+#line 1130 "awkgram.y"
{
/*
* Optimization: plain `print' has no expression list, so $3 is null.
@@ -3131,17 +3139,17 @@ regular_print:
}
}
}
-#line 3135 "awkgram.c"
+#line 3143 "awkgram.c"
break;
case 68: /* $@5: %empty */
-#line 1230 "awkgram.y"
+#line 1231 "awkgram.y"
{ sub_counter = 0; }
-#line 3141 "awkgram.c"
+#line 3149 "awkgram.c"
break;
case 69: /* simple_stmt: LEX_DELETE NAME $@5 delete_subscript_list */
-#line 1231 "awkgram.y"
+#line 1232 "awkgram.y"
{
char *arr = yyvsp[-2]->lextok;
@@ -3174,11 +3182,11 @@ regular_print:
yyval = list_append(list_append(yyvsp[0], yyvsp[-2]), yyvsp[-3]);
}
}
-#line 3178 "awkgram.c"
+#line 3186 "awkgram.c"
break;
case 70: /* simple_stmt: LEX_DELETE '(' NAME ')' */
-#line 1268 "awkgram.y"
+#line 1269 "awkgram.y"
{
static bool warned = false;
char *arr = yyvsp[-1]->lextok;
@@ -3204,54 +3212,54 @@ regular_print:
fatal(_("`delete' is not allowed with FUNCTAB"));
}
}
-#line 3208 "awkgram.c"
+#line 3216 "awkgram.c"
break;
case 71: /* simple_stmt: exp */
-#line 1294 "awkgram.y"
+#line 1295 "awkgram.y"
{
yyval = optimize_assignment(yyvsp[0]);
}
-#line 3216 "awkgram.c"
+#line 3224 "awkgram.c"
break;
case 72: /* opt_simple_stmt: %empty */
-#line 1301 "awkgram.y"
+#line 1302 "awkgram.y"
{ yyval = NULL; }
-#line 3222 "awkgram.c"
+#line 3230 "awkgram.c"
break;
case 73: /* opt_simple_stmt: simple_stmt */
-#line 1303 "awkgram.y"
+#line 1304 "awkgram.y"
{ yyval = yyvsp[0]; }
-#line 3228 "awkgram.c"
+#line 3236 "awkgram.c"
break;
case 74: /* case_statements: %empty */
-#line 1308 "awkgram.y"
+#line 1309 "awkgram.y"
{ yyval = NULL; }
-#line 3234 "awkgram.c"
+#line 3242 "awkgram.c"
break;
case 75: /* case_statements: case_statements case_statement */
-#line 1310 "awkgram.y"
+#line 1311 "awkgram.y"
{
if (yyvsp[-1] == NULL)
yyval = list_create(yyvsp[0]);
else
yyval = list_prepend(yyvsp[-1], yyvsp[0]);
}
-#line 3245 "awkgram.c"
+#line 3253 "awkgram.c"
break;
case 76: /* case_statements: case_statements error */
-#line 1317 "awkgram.y"
+#line 1318 "awkgram.y"
{ yyval = NULL; }
-#line 3251 "awkgram.c"
+#line 3259 "awkgram.c"
break;
case 77: /* case_statement: LEX_CASE case_value colon opt_nls statements */
-#line 1322 "awkgram.y"
+#line 1323 "awkgram.y"
{
INSTRUCTION *casestmt = yyvsp[0];
if (yyvsp[0] == NULL)
@@ -3264,11 +3272,11 @@ regular_print:
bcfree(yyvsp[-2]);
yyval = yyvsp[-4];
}
-#line 3268 "awkgram.c"
+#line 3276 "awkgram.c"
break;
case 78: /* case_statement: LEX_DEFAULT colon opt_nls statements */
-#line 1335 "awkgram.y"
+#line 1336 "awkgram.y"
{
INSTRUCTION *casestmt = yyvsp[0];
if (yyvsp[0] == NULL)
@@ -3280,17 +3288,17 @@ regular_print:
yyvsp[-3]->comment = yyvsp[-1];
yyval = yyvsp[-3];
}
-#line 3284 "awkgram.c"
+#line 3292 "awkgram.c"
break;
case 79: /* case_value: YNUMBER */
-#line 1350 "awkgram.y"
+#line 1351 "awkgram.y"
{ yyval = yyvsp[0]; }
-#line 3290 "awkgram.c"
+#line 3298 "awkgram.c"
break;
case 80: /* case_value: '-' YNUMBER */
-#line 1352 "awkgram.y"
+#line 1353 "awkgram.y"
{
NODE *n = yyvsp[0]->memory;
(void) force_number(n);
@@ -3298,28 +3306,28 @@ regular_print:
bcfree(yyvsp[-1]);
yyval = yyvsp[0];
}
-#line 3302 "awkgram.c"
+#line 3310 "awkgram.c"
break;
case 81: /* case_value: '+' YNUMBER */
-#line 1360 "awkgram.y"
+#line 1361 "awkgram.y"
{
NODE *n = yyvsp[0]->lasti->memory;
bcfree(yyvsp[-1]);
add_sign_to_num(n, '+');
yyval = yyvsp[0];
}
-#line 3313 "awkgram.c"
+#line 3321 "awkgram.c"
break;
case 82: /* case_value: YSTRING */
-#line 1367 "awkgram.y"
+#line 1368 "awkgram.y"
{ yyval = yyvsp[0]; }
-#line 3319 "awkgram.c"
+#line 3327 "awkgram.c"
break;
case 83: /* case_value: regexp */
-#line 1369 "awkgram.y"
+#line 1370 "awkgram.y"
{
if (yyvsp[0]->memory->type == Node_regex)
yyvsp[0]->opcode = Op_push_re;
@@ -3327,57 +3335,57 @@ regular_print:
yyvsp[0]->opcode = Op_push;
yyval = yyvsp[0];
}
-#line 3331 "awkgram.c"
+#line 3339 "awkgram.c"
break;
case 84: /* case_value: typed_regexp */
-#line 1377 "awkgram.y"
+#line 1378 "awkgram.y"
{
assert((yyvsp[0]->memory->flags & REGEX) == REGEX);
yyvsp[0]->opcode = Op_push_re;
yyval = yyvsp[0];
}
-#line 3341 "awkgram.c"
+#line 3349 "awkgram.c"
break;
case 85: /* print: LEX_PRINT */
-#line 1386 "awkgram.y"
+#line 1387 "awkgram.y"
{ yyval = yyvsp[0]; }
-#line 3347 "awkgram.c"
+#line 3355 "awkgram.c"
break;
case 86: /* print: LEX_PRINTF */
-#line 1388 "awkgram.y"
+#line 1389 "awkgram.y"
{ yyval = yyvsp[0]; }
-#line 3353 "awkgram.c"
+#line 3361 "awkgram.c"
break;
case 88: /* print_expression_list: '(' expression_list r_paren */
-#line 1398 "awkgram.y"
+#line 1399 "awkgram.y"
{
yyval = yyvsp[-1];
}
-#line 3361 "awkgram.c"
+#line 3369 "awkgram.c"
break;
case 89: /* output_redir: %empty */
-#line 1405 "awkgram.y"
+#line 1406 "awkgram.y"
{
in_print = false;
in_parens = 0;
yyval = NULL;
}
-#line 3371 "awkgram.c"
+#line 3379 "awkgram.c"
break;
case 90: /* $@6: %empty */
-#line 1410 "awkgram.y"
+#line 1411 "awkgram.y"
{ in_print = false; in_parens = 0; }
-#line 3377 "awkgram.c"
+#line 3385 "awkgram.c"
break;
case 91: /* output_redir: IO_OUT $@6 common_exp */
-#line 1411 "awkgram.y"
+#line 1412 "awkgram.y"
{
if (yyvsp[-2]->redir_type == redirect_twoway
&& yyvsp[0]->lasti->opcode == Op_K_getline_redir
@@ -3387,22 +3395,22 @@ regular_print:
lintwarn(_("concatenation as I/O `>' redirection target is ambiguous"));
yyval = list_prepend(yyvsp[0], yyvsp[-2]);
}
-#line 3391 "awkgram.c"
+#line 3399 "awkgram.c"
break;
case 92: /* if_statement: LEX_IF '(' exp r_paren opt_nls statement */
-#line 1424 "awkgram.y"
+#line 1425 "awkgram.y"
{
if (yyvsp[-1] != NULL)
yyvsp[-5]->comment = yyvsp[-1];
add_lint(yyvsp[-3], LINT_assign_in_cond);
yyval = mk_condition(yyvsp[-3], yyvsp[-5], yyvsp[0], NULL, NULL);
}
-#line 3402 "awkgram.c"
+#line 3410 "awkgram.c"
break;
case 93: /* if_statement: LEX_IF '(' exp r_paren opt_nls statement LEX_ELSE opt_nls statement */
-#line 1432 "awkgram.y"
+#line 1433 "awkgram.y"
{
if (yyvsp[-4] != NULL)
yyvsp[-8]->comment = yyvsp[-4];
@@ -3411,19 +3419,19 @@ regular_print:
add_lint(yyvsp[-6], LINT_assign_in_cond);
yyval = mk_condition(yyvsp[-6], yyvsp[-8], yyvsp[-3], yyvsp[-2], yyvsp[0]);
}
-#line 3415 "awkgram.c"
+#line 3423 "awkgram.c"
break;
case 94: /* nls: NEWLINE */
-#line 1444 "awkgram.y"
+#line 1445 "awkgram.y"
{
yyval = yyvsp[0];
}
-#line 3423 "awkgram.c"
+#line 3431 "awkgram.c"
break;
case 95: /* nls: nls NEWLINE */
-#line 1448 "awkgram.y"
+#line 1449 "awkgram.y"
{
if (yyvsp[-1] != NULL && yyvsp[0] != NULL) {
if (yyvsp[-1]->memory->comment_type == EOL_COMMENT) {
@@ -3441,59 +3449,59 @@ regular_print:
} else
yyval = NULL;
}
-#line 3445 "awkgram.c"
+#line 3453 "awkgram.c"
break;
case 96: /* opt_nls: %empty */
-#line 1469 "awkgram.y"
+#line 1470 "awkgram.y"
{ yyval = NULL; }
-#line 3451 "awkgram.c"
+#line 3459 "awkgram.c"
break;
case 97: /* opt_nls: nls */
-#line 1471 "awkgram.y"
+#line 1472 "awkgram.y"
{ yyval = yyvsp[0]; }
-#line 3457 "awkgram.c"
+#line 3465 "awkgram.c"
break;
case 98: /* input_redir: %empty */
-#line 1476 "awkgram.y"
+#line 1477 "awkgram.y"
{ yyval = NULL; }
-#line 3463 "awkgram.c"
+#line 3471 "awkgram.c"
break;
case 99: /* input_redir: '<' simp_exp */
-#line 1478 "awkgram.y"
+#line 1479 "awkgram.y"
{
bcfree(yyvsp[-1]);
yyval = yyvsp[0];
}
-#line 3472 "awkgram.c"
+#line 3480 "awkgram.c"
break;
case 100: /* opt_param_list: %empty */
-#line 1486 "awkgram.y"
+#line 1487 "awkgram.y"
{ yyval = NULL; }
-#line 3478 "awkgram.c"
+#line 3486 "awkgram.c"
break;
case 101: /* opt_param_list: param_list */
-#line 1488 "awkgram.y"
+#line 1489 "awkgram.y"
{ yyval = yyvsp[0]; }
-#line 3484 "awkgram.c"
+#line 3492 "awkgram.c"
break;
case 102: /* param_list: NAME */
-#line 1493 "awkgram.y"
+#line 1494 "awkgram.y"
{
yyvsp[0]->param_count = 0;
yyval = list_create(yyvsp[0]);
}
-#line 3493 "awkgram.c"
+#line 3501 "awkgram.c"
break;
case 103: /* param_list: param_list comma NAME */
-#line 1498 "awkgram.y"
+#line 1499 "awkgram.y"
{
if (yyvsp[-2] != NULL && yyvsp[0] != NULL) {
yyvsp[0]->param_count = yyvsp[-2]->lasti->param_count + 1;
@@ -3510,76 +3518,76 @@ regular_print:
} else
yyval = NULL;
}
-#line 3514 "awkgram.c"
+#line 3522 "awkgram.c"
break;
case 104: /* param_list: error */
-#line 1515 "awkgram.y"
+#line 1516 "awkgram.y"
{ yyval = NULL; }
-#line 3520 "awkgram.c"
+#line 3528 "awkgram.c"
break;
case 105: /* param_list: param_list error */
-#line 1517 "awkgram.y"
+#line 1518 "awkgram.y"
{ yyval = yyvsp[-1]; }
-#line 3526 "awkgram.c"
+#line 3534 "awkgram.c"
break;
case 106: /* param_list: param_list comma error */
-#line 1519 "awkgram.y"
+#line 1520 "awkgram.y"
{ yyval = yyvsp[-2]; }
-#line 3532 "awkgram.c"
+#line 3540 "awkgram.c"
break;
case 107: /* opt_exp: %empty */
-#line 1525 "awkgram.y"
+#line 1526 "awkgram.y"
{ yyval = NULL; }
-#line 3538 "awkgram.c"
+#line 3546 "awkgram.c"
break;
case 108: /* opt_exp: exp */
-#line 1527 "awkgram.y"
+#line 1528 "awkgram.y"
{ yyval = yyvsp[0]; }
-#line 3544 "awkgram.c"
+#line 3552 "awkgram.c"
break;
case 109: /* opt_expression_list: %empty */
-#line 1532 "awkgram.y"
+#line 1533 "awkgram.y"
{ yyval = NULL; }
-#line 3550 "awkgram.c"
+#line 3558 "awkgram.c"
break;
case 110: /* opt_expression_list: expression_list */
-#line 1534 "awkgram.y"
+#line 1535 "awkgram.y"
{ yyval = yyvsp[0]; }
-#line 3556 "awkgram.c"
+#line 3564 "awkgram.c"
break;
case 111: /* expression_list: exp */
-#line 1539 "awkgram.y"
+#line 1540 "awkgram.y"
{ yyval = mk_expression_list(NULL, yyvsp[0]); }
-#line 3562 "awkgram.c"
+#line 3570 "awkgram.c"
break;
case 112: /* expression_list: expression_list comma exp */
-#line 1541 "awkgram.y"
+#line 1542 "awkgram.y"
{
if (yyvsp[-1] != NULL)
yyvsp[-2]->lasti->comment = yyvsp[-1];
yyval = mk_expression_list(yyvsp[-2], yyvsp[0]);
yyerrok;
}
-#line 3573 "awkgram.c"
+#line 3581 "awkgram.c"
break;
case 113: /* expression_list: error */
-#line 1548 "awkgram.y"
+#line 1549 "awkgram.y"
{ yyval = NULL; }
-#line 3579 "awkgram.c"
+#line 3587 "awkgram.c"
break;
case 114: /* expression_list: expression_list error */
-#line 1550 "awkgram.y"
+#line 1551 "awkgram.y"
{
/*
* Returning the expression list instead of NULL lets
@@ -3587,66 +3595,66 @@ regular_print:
*/
yyval = yyvsp[-1];
}
-#line 3591 "awkgram.c"
+#line 3599 "awkgram.c"
break;
case 115: /* expression_list: expression_list error exp */
-#line 1558 "awkgram.y"
+#line 1559 "awkgram.y"
{
/* Ditto */
yyval = mk_expression_list(yyvsp[-2], yyvsp[0]);
}
-#line 3600 "awkgram.c"
+#line 3608 "awkgram.c"
break;
case 116: /* expression_list: expression_list comma error */
-#line 1563 "awkgram.y"
+#line 1564 "awkgram.y"
{
/* Ditto */
if (yyvsp[-1] != NULL)
yyvsp[-2]->lasti->comment = yyvsp[-1];
yyval = yyvsp[-2];
}
-#line 3611 "awkgram.c"
+#line 3619 "awkgram.c"
break;
case 117: /* opt_fcall_expression_list: %empty */
-#line 1573 "awkgram.y"
+#line 1574 "awkgram.y"
{ yyval = NULL; }
-#line 3617 "awkgram.c"
+#line 3625 "awkgram.c"
break;
case 118: /* opt_fcall_expression_list: fcall_expression_list */
-#line 1575 "awkgram.y"
+#line 1576 "awkgram.y"
{ yyval = yyvsp[0]; }
-#line 3623 "awkgram.c"
+#line 3631 "awkgram.c"
break;
case 119: /* fcall_expression_list: fcall_exp */
-#line 1580 "awkgram.y"
+#line 1581 "awkgram.y"
{ yyval = mk_expression_list(NULL, yyvsp[0]); }
-#line 3629 "awkgram.c"
+#line 3637 "awkgram.c"
break;
case 120: /* fcall_expression_list: fcall_expression_list comma fcall_exp */
-#line 1582 "awkgram.y"
+#line 1583 "awkgram.y"
{
if (yyvsp[-1] != NULL)
yyvsp[-2]->lasti->comment = yyvsp[-1];
yyval = mk_expression_list(yyvsp[-2], yyvsp[0]);
yyerrok;
}
-#line 3640 "awkgram.c"
+#line 3648 "awkgram.c"
break;
case 121: /* fcall_expression_list: error */
-#line 1589 "awkgram.y"
+#line 1590 "awkgram.y"
{ yyval = NULL; }
-#line 3646 "awkgram.c"
+#line 3654 "awkgram.c"
break;
case 122: /* fcall_expression_list: fcall_expression_list error */
-#line 1591 "awkgram.y"
+#line 1592 "awkgram.y"
{
/*
* Returning the expression list instead of NULL lets
@@ -3654,86 +3662,86 @@ regular_print:
*/
yyval = yyvsp[-1];
}
-#line 3658 "awkgram.c"
+#line 3666 "awkgram.c"
break;
case 123: /* fcall_expression_list: fcall_expression_list error fcall_exp */
-#line 1599 "awkgram.y"
+#line 1600 "awkgram.y"
{
/* Ditto */
yyval = mk_expression_list(yyvsp[-2], yyvsp[0]);
}
-#line 3667 "awkgram.c"
+#line 3675 "awkgram.c"
break;
case 124: /* fcall_expression_list: fcall_expression_list comma error */
-#line 1604 "awkgram.y"
+#line 1605 "awkgram.y"
{
/* Ditto */
if (yyvsp[-1] != NULL)
yyvsp[-2]->comment = yyvsp[-1];
yyval = yyvsp[-2];
}
-#line 3678 "awkgram.c"
+#line 3686 "awkgram.c"
break;
case 125: /* fcall_exp: exp */
-#line 1613 "awkgram.y"
+#line 1614 "awkgram.y"
{ yyval = yyvsp[0]; }
-#line 3684 "awkgram.c"
+#line 3692 "awkgram.c"
break;
case 126: /* fcall_exp: typed_regexp */
-#line 1614 "awkgram.y"
+#line 1615 "awkgram.y"
{ yyval = list_create(yyvsp[0]); }
-#line 3690 "awkgram.c"
+#line 3698 "awkgram.c"
break;
case 127: /* opt_fcall_exp: %empty */
-#line 1619 "awkgram.y"
+#line 1620 "awkgram.y"
{ yyval = NULL; }
-#line 3696 "awkgram.c"
+#line 3704 "awkgram.c"
break;
case 128: /* opt_fcall_exp: fcall_exp */
-#line 1620 "awkgram.y"
+#line 1621 "awkgram.y"
{ yyval = yyvsp[0]; }
-#line 3702 "awkgram.c"
+#line 3710 "awkgram.c"
break;
case 129: /* exp: variable assign_operator exp */
-#line 1626 "awkgram.y"
+#line 1627 "awkgram.y"
{
if (do_lint && yyvsp[0]->lasti->opcode == Op_match_rec)
lintwarn_ln(yyvsp[-1]->source_line,
_("regular expression on right of assignment"));
yyval = mk_assignment(yyvsp[-2], yyvsp[0], yyvsp[-1]);
}
-#line 3713 "awkgram.c"
+#line 3721 "awkgram.c"
break;
case 130: /* exp: variable ASSIGN typed_regexp */
-#line 1633 "awkgram.y"
+#line 1634 "awkgram.y"
{
yyval = mk_assignment(yyvsp[-2], list_create(yyvsp[0]), yyvsp[-1]);
}
-#line 3721 "awkgram.c"
+#line 3729 "awkgram.c"
break;
case 131: /* exp: exp LEX_AND exp */
-#line 1637 "awkgram.y"
+#line 1638 "awkgram.y"
{ yyval = mk_boolean(yyvsp[-2], yyvsp[0], yyvsp[-1]); }
-#line 3727 "awkgram.c"
+#line 3735 "awkgram.c"
break;
case 132: /* exp: exp LEX_OR exp */
-#line 1639 "awkgram.y"
+#line 1640 "awkgram.y"
{ yyval = mk_boolean(yyvsp[-2], yyvsp[0], yyvsp[-1]); }
-#line 3733 "awkgram.c"
+#line 3741 "awkgram.c"
break;
case 133: /* exp: exp MATCHOP typed_regexp */
-#line 1641 "awkgram.y"
+#line 1642 "awkgram.y"
{
if (yyvsp[-2]->lasti->opcode == Op_match_rec)
warning_ln(yyvsp[-1]->source_line,
@@ -3746,11 +3754,11 @@ regular_print:
bcfree(yyvsp[0]);
yyval = list_append(yyvsp[-2], yyvsp[-1]);
}
-#line 3750 "awkgram.c"
+#line 3758 "awkgram.c"
break;
case 134: /* exp: exp MATCHOP exp */
-#line 1654 "awkgram.y"
+#line 1655 "awkgram.y"
{
if (yyvsp[-2]->lasti->opcode == Op_match_rec)
warning_ln(yyvsp[-1]->source_line,
@@ -3767,11 +3775,11 @@ regular_print:
yyval = list_append(list_merge(yyvsp[-2], yyvsp[0]), yyvsp[-1]);
}
}
-#line 3771 "awkgram.c"
+#line 3779 "awkgram.c"
break;
case 135: /* exp: exp LEX_IN simple_variable */
-#line 1671 "awkgram.y"
+#line 1672 "awkgram.y"
{
if (do_lint_old)
lintwarn_ln(yyvsp[-1]->source_line,
@@ -3781,91 +3789,91 @@ regular_print:
yyvsp[-1]->expr_count = 1;
yyval = list_append(list_merge(yyvsp[-2], yyvsp[0]), yyvsp[-1]);
}
-#line 3785 "awkgram.c"
+#line 3793 "awkgram.c"
break;
case 136: /* exp: exp a_relop exp */
-#line 1681 "awkgram.y"
+#line 1682 "awkgram.y"
{
if (do_lint && yyvsp[0]->lasti->opcode == Op_match_rec)
lintwarn_ln(yyvsp[-1]->source_line,
_("regular expression on right of comparison"));
yyval = list_append(list_merge(yyvsp[-2], yyvsp[0]), yyvsp[-1]);
}
-#line 3796 "awkgram.c"
+#line 3804 "awkgram.c"
break;
case 137: /* exp: exp '?' exp ':' exp */
-#line 1688 "awkgram.y"
+#line 1689 "awkgram.y"
{ yyval = mk_condition(yyvsp[-4], yyvsp[-3], yyvsp[-2], yyvsp[-1], yyvsp[0]); }
-#line 3802 "awkgram.c"
+#line 3810 "awkgram.c"
break;
case 138: /* exp: common_exp */
-#line 1690 "awkgram.y"
+#line 1691 "awkgram.y"
{ yyval = yyvsp[0]; }
-#line 3808 "awkgram.c"
+#line 3816 "awkgram.c"
break;
case 139: /* assign_operator: ASSIGN */
-#line 1695 "awkgram.y"
+#line 1696 "awkgram.y"
{ yyval = yyvsp[0]; }
-#line 3814 "awkgram.c"
+#line 3822 "awkgram.c"
break;
case 140: /* assign_operator: ASSIGNOP */
-#line 1697 "awkgram.y"
+#line 1698 "awkgram.y"
{ yyval = yyvsp[0]; }
-#line 3820 "awkgram.c"
+#line 3828 "awkgram.c"
break;
case 141: /* assign_operator: SLASH_BEFORE_EQUAL ASSIGN */
-#line 1699 "awkgram.y"
+#line 1700 "awkgram.y"
{
yyvsp[0]->opcode = Op_assign_quotient;
yyval = yyvsp[0];
}
-#line 3829 "awkgram.c"
+#line 3837 "awkgram.c"
break;
case 142: /* relop_or_less: RELOP */
-#line 1707 "awkgram.y"
+#line 1708 "awkgram.y"
{ yyval = yyvsp[0]; }
-#line 3835 "awkgram.c"
+#line 3843 "awkgram.c"
break;
case 143: /* relop_or_less: '<' */
-#line 1709 "awkgram.y"
+#line 1710 "awkgram.y"
{ yyval = yyvsp[0]; }
-#line 3841 "awkgram.c"
+#line 3849 "awkgram.c"
break;
case 144: /* a_relop: relop_or_less */
-#line 1714 "awkgram.y"
+#line 1715 "awkgram.y"
{ yyval = yyvsp[0]; }
-#line 3847 "awkgram.c"
+#line 3855 "awkgram.c"
break;
case 145: /* a_relop: '>' */
-#line 1716 "awkgram.y"
+#line 1717 "awkgram.y"
{ yyval = yyvsp[0]; }
-#line 3853 "awkgram.c"
+#line 3861 "awkgram.c"
break;
case 146: /* common_exp: simp_exp */
-#line 1721 "awkgram.y"
+#line 1722 "awkgram.y"
{ yyval = yyvsp[0]; }
-#line 3859 "awkgram.c"
+#line 3867 "awkgram.c"
break;
case 147: /* common_exp: simp_exp_nc */
-#line 1723 "awkgram.y"
+#line 1724 "awkgram.y"
{ yyval = yyvsp[0]; }
-#line 3865 "awkgram.c"
+#line 3873 "awkgram.c"
break;
case 148: /* common_exp: common_exp simp_exp */
-#line 1725 "awkgram.y"
+#line 1726 "awkgram.y"
{
int count = 2;
bool is_simple_var = false;
@@ -3919,47 +3927,47 @@ regular_print:
max_args = count;
}
}
-#line 3923 "awkgram.c"
+#line 3931 "awkgram.c"
break;
case 150: /* simp_exp: simp_exp '^' simp_exp */
-#line 1784 "awkgram.y"
+#line 1785 "awkgram.y"
{ yyval = mk_binary(yyvsp[-2], yyvsp[0], yyvsp[-1]); }
-#line 3929 "awkgram.c"
+#line 3937 "awkgram.c"
break;
case 151: /* simp_exp: simp_exp '*' simp_exp */
-#line 1786 "awkgram.y"
+#line 1787 "awkgram.y"
{ yyval = mk_binary(yyvsp[-2], yyvsp[0], yyvsp[-1]); }
-#line 3935 "awkgram.c"
+#line 3943 "awkgram.c"
break;
case 152: /* simp_exp: simp_exp '/' simp_exp */
-#line 1788 "awkgram.y"
+#line 1789 "awkgram.y"
{ yyval = mk_binary(yyvsp[-2], yyvsp[0], yyvsp[-1]); }
-#line 3941 "awkgram.c"
+#line 3949 "awkgram.c"
break;
case 153: /* simp_exp: simp_exp '%' simp_exp */
-#line 1790 "awkgram.y"
+#line 1791 "awkgram.y"
{ yyval = mk_binary(yyvsp[-2], yyvsp[0], yyvsp[-1]); }
-#line 3947 "awkgram.c"
+#line 3955 "awkgram.c"
break;
case 154: /* simp_exp: simp_exp '+' simp_exp */
-#line 1792 "awkgram.y"
+#line 1793 "awkgram.y"
{ yyval = mk_binary(yyvsp[-2], yyvsp[0], yyvsp[-1]); }
-#line 3953 "awkgram.c"
+#line 3961 "awkgram.c"
break;
case 155: /* simp_exp: simp_exp '-' simp_exp */
-#line 1794 "awkgram.y"
+#line 1795 "awkgram.y"
{ yyval = mk_binary(yyvsp[-2], yyvsp[0], yyvsp[-1]); }
-#line 3959 "awkgram.c"
+#line 3967 "awkgram.c"
break;
case 156: /* simp_exp: LEX_GETLINE opt_variable input_redir */
-#line 1796 "awkgram.y"
+#line 1797 "awkgram.y"
{
/*
* In BEGINFILE/ENDFILE, allow `getline [var] < file'
@@ -3973,29 +3981,29 @@ regular_print:
_("non-redirected `getline' undefined inside END action"));
yyval = mk_getline(yyvsp[-2], yyvsp[-1], yyvsp[0], redirect_input);
}
-#line 3977 "awkgram.c"
+#line 3985 "awkgram.c"
break;
case 157: /* simp_exp: variable INCREMENT */
-#line 1810 "awkgram.y"
+#line 1811 "awkgram.y"
{
yyvsp[0]->opcode = Op_postincrement;
yyval = mk_assignment(yyvsp[-1], NULL, yyvsp[0]);
}
-#line 3986 "awkgram.c"
+#line 3994 "awkgram.c"
break;
case 158: /* simp_exp: variable DECREMENT */
-#line 1815 "awkgram.y"
+#line 1816 "awkgram.y"
{
yyvsp[0]->opcode = Op_postdecrement;
yyval = mk_assignment(yyvsp[-1], NULL, yyvsp[0]);
}
-#line 3995 "awkgram.c"
+#line 4003 "awkgram.c"
break;
case 159: /* simp_exp: '(' expression_list r_paren LEX_IN simple_variable */
-#line 1820 "awkgram.y"
+#line 1821 "awkgram.y"
{
if (do_lint_old) {
/* first one is warning so that second one comes out if warnings are fatal */
@@ -4016,64 +4024,64 @@ regular_print:
yyval = list_append(list_merge(t, yyvsp[0]), yyvsp[-1]);
}
}
-#line 4020 "awkgram.c"
+#line 4028 "awkgram.c"
break;
case 160: /* simp_exp_nc: common_exp IO_IN LEX_GETLINE opt_variable */
-#line 1846 "awkgram.y"
+#line 1847 "awkgram.y"
{
yyval = mk_getline(yyvsp[-1], yyvsp[0], yyvsp[-3], yyvsp[-2]->redir_type);
bcfree(yyvsp[-2]);
}
-#line 4029 "awkgram.c"
+#line 4037 "awkgram.c"
break;
case 161: /* simp_exp_nc: simp_exp_nc '^' simp_exp */
-#line 1852 "awkgram.y"
+#line 1853 "awkgram.y"
{ yyval = mk_binary(yyvsp[-2], yyvsp[0], yyvsp[-1]); }
-#line 4035 "awkgram.c"
+#line 4043 "awkgram.c"
break;
case 162: /* simp_exp_nc: simp_exp_nc '*' simp_exp */
-#line 1854 "awkgram.y"
+#line 1855 "awkgram.y"
{ yyval = mk_binary(yyvsp[-2], yyvsp[0], yyvsp[-1]); }
-#line 4041 "awkgram.c"
+#line 4049 "awkgram.c"
break;
case 163: /* simp_exp_nc: simp_exp_nc '/' simp_exp */
-#line 1856 "awkgram.y"
+#line 1857 "awkgram.y"
{ yyval = mk_binary(yyvsp[-2], yyvsp[0], yyvsp[-1]); }
-#line 4047 "awkgram.c"
+#line 4055 "awkgram.c"
break;
case 164: /* simp_exp_nc: simp_exp_nc '%' simp_exp */
-#line 1858 "awkgram.y"
+#line 1859 "awkgram.y"
{ yyval = mk_binary(yyvsp[-2], yyvsp[0], yyvsp[-1]); }
-#line 4053 "awkgram.c"
+#line 4061 "awkgram.c"
break;
case 165: /* simp_exp_nc: simp_exp_nc '+' simp_exp */
-#line 1860 "awkgram.y"
+#line 1861 "awkgram.y"
{ yyval = mk_binary(yyvsp[-2], yyvsp[0], yyvsp[-1]); }
-#line 4059 "awkgram.c"
+#line 4067 "awkgram.c"
break;
case 166: /* simp_exp_nc: simp_exp_nc '-' simp_exp */
-#line 1862 "awkgram.y"
+#line 1863 "awkgram.y"
{ yyval = mk_binary(yyvsp[-2], yyvsp[0], yyvsp[-1]); }
-#line 4065 "awkgram.c"
+#line 4073 "awkgram.c"
break;
case 167: /* non_post_simp_exp: regexp */
-#line 1867 "awkgram.y"
+#line 1868 "awkgram.y"
{
yyval = list_create(yyvsp[0]);
}
-#line 4073 "awkgram.c"
+#line 4081 "awkgram.c"
break;
case 168: /* non_post_simp_exp: '!' simp_exp */
-#line 1871 "awkgram.y"
+#line 1872 "awkgram.y"
{
if (yyvsp[0]->opcode == Op_match_rec) {
yyvsp[0]->opcode = Op_nomatch;
@@ -4105,11 +4113,11 @@ regular_print:
}
}
}
-#line 4109 "awkgram.c"
+#line 4117 "awkgram.c"
break;
case 169: /* non_post_simp_exp: '(' exp r_paren */
-#line 1903 "awkgram.y"
+#line 1904 "awkgram.y"
{
// Always include. Allows us to lint warn on
// print "foo" > "bar" 1
@@ -4117,31 +4125,31 @@ regular_print:
// print "foo" > ("bar" 1)
yyval = list_append(yyvsp[-1], bcalloc(Op_parens, 1, sourceline));
}
-#line 4121 "awkgram.c"
+#line 4129 "awkgram.c"
break;
case 170: /* non_post_simp_exp: LEX_BUILTIN '(' opt_fcall_expression_list r_paren */
-#line 1911 "awkgram.y"
+#line 1912 "awkgram.y"
{
yyval = snode(yyvsp[-1], yyvsp[-3]);
if (yyval == NULL)
YYABORT;
}
-#line 4131 "awkgram.c"
+#line 4139 "awkgram.c"
break;
case 171: /* non_post_simp_exp: LEX_LENGTH '(' opt_fcall_expression_list r_paren */
-#line 1917 "awkgram.y"
+#line 1918 "awkgram.y"
{
yyval = snode(yyvsp[-1], yyvsp[-3]);
if (yyval == NULL)
YYABORT;
}
-#line 4141 "awkgram.c"
+#line 4149 "awkgram.c"
break;
case 172: /* non_post_simp_exp: LEX_LENGTH */
-#line 1923 "awkgram.y"
+#line 1924 "awkgram.y"
{
static bool warned = false;
@@ -4154,45 +4162,45 @@ regular_print:
if (yyval == NULL)
YYABORT;
}
-#line 4158 "awkgram.c"
+#line 4166 "awkgram.c"
break;
case 175: /* non_post_simp_exp: INCREMENT variable */
-#line 1938 "awkgram.y"
+#line 1939 "awkgram.y"
{
yyvsp[-1]->opcode = Op_preincrement;
yyval = mk_assignment(yyvsp[0], NULL, yyvsp[-1]);
}
-#line 4167 "awkgram.c"
+#line 4175 "awkgram.c"
break;
case 176: /* non_post_simp_exp: DECREMENT variable */
-#line 1943 "awkgram.y"
+#line 1944 "awkgram.y"
{
yyvsp[-1]->opcode = Op_predecrement;
yyval = mk_assignment(yyvsp[0], NULL, yyvsp[-1]);
}
-#line 4176 "awkgram.c"
+#line 4184 "awkgram.c"
break;
case 177: /* non_post_simp_exp: YNUMBER */
-#line 1948 "awkgram.y"
+#line 1949 "awkgram.y"
{
yyval = list_create(yyvsp[0]);
}
-#line 4184 "awkgram.c"
+#line 4192 "awkgram.c"
break;
case 178: /* non_post_simp_exp: YSTRING */
-#line 1952 "awkgram.y"
+#line 1953 "awkgram.y"
{
yyval = list_create(yyvsp[0]);
}
-#line 4192 "awkgram.c"
+#line 4200 "awkgram.c"
break;
case 179: /* non_post_simp_exp: '-' simp_exp */
-#line 1956 "awkgram.y"
+#line 1957 "awkgram.y"
{
if (yyvsp[0]->lasti->opcode == Op_push_i
&& (yyvsp[0]->lasti->memory->flags & STRING) == 0
@@ -4207,11 +4215,11 @@ regular_print:
yyval = list_append(yyvsp[0], yyvsp[-1]);
}
}
-#line 4211 "awkgram.c"
+#line 4219 "awkgram.c"
break;
case 180: /* non_post_simp_exp: '+' simp_exp */
-#line 1971 "awkgram.y"
+#line 1972 "awkgram.y"
{
if (yyvsp[0]->lasti->opcode == Op_push_i
&& (yyvsp[0]->lasti->memory->flags & STRING) == 0
@@ -4229,20 +4237,20 @@ regular_print:
yyval = list_append(yyvsp[0], yyvsp[-1]);
}
}
-#line 4233 "awkgram.c"
+#line 4241 "awkgram.c"
break;
case 181: /* func_call: direct_func_call */
-#line 1992 "awkgram.y"
+#line 1993 "awkgram.y"
{
func_use(yyvsp[0]->lasti->func_name, FUNC_USE);
yyval = yyvsp[0];
}
-#line 4242 "awkgram.c"
+#line 4250 "awkgram.c"
break;
case 182: /* func_call: '@' direct_func_call */
-#line 1997 "awkgram.y"
+#line 1998 "awkgram.y"
{
/* indirect function call */
INSTRUCTION *f, *t;
@@ -4276,11 +4284,11 @@ regular_print:
yyval = list_prepend(yyvsp[0], t);
at_seen = false;
}
-#line 4280 "awkgram.c"
+#line 4288 "awkgram.c"
break;
case 183: /* direct_func_call: FUNC_CALL '(' opt_fcall_expression_list r_paren */
-#line 2034 "awkgram.y"
+#line 2035 "awkgram.y"
{
NODE *n;
char *name = yyvsp[-3]->func_name;
@@ -4313,49 +4321,49 @@ regular_print:
yyval = list_append(t, yyvsp[-3]);
}
}
-#line 4317 "awkgram.c"
+#line 4325 "awkgram.c"
break;
case 184: /* opt_variable: %empty */
-#line 2070 "awkgram.y"
+#line 2071 "awkgram.y"
{ yyval = NULL; }
-#line 4323 "awkgram.c"
+#line 4331 "awkgram.c"
break;
case 185: /* opt_variable: variable */
-#line 2072 "awkgram.y"
+#line 2073 "awkgram.y"
{ yyval = yyvsp[0]; }
-#line 4329 "awkgram.c"
+#line 4337 "awkgram.c"
break;
case 186: /* delete_subscript_list: %empty */
-#line 2077 "awkgram.y"
+#line 2078 "awkgram.y"
{ yyval = NULL; }
-#line 4335 "awkgram.c"
+#line 4343 "awkgram.c"
break;
case 187: /* delete_subscript_list: delete_subscript SUBSCRIPT */
-#line 2079 "awkgram.y"
+#line 2080 "awkgram.y"
{ yyval = yyvsp[-1]; }
-#line 4341 "awkgram.c"
+#line 4349 "awkgram.c"
break;
case 188: /* delete_subscript: delete_exp_list */
-#line 2084 "awkgram.y"
+#line 2085 "awkgram.y"
{ yyval = yyvsp[0]; }
-#line 4347 "awkgram.c"
+#line 4355 "awkgram.c"
break;
case 189: /* delete_subscript: delete_subscript delete_exp_list */
-#line 2086 "awkgram.y"
+#line 2087 "awkgram.y"
{
yyval = list_merge(yyvsp[-1], yyvsp[0]);
}
-#line 4355 "awkgram.c"
+#line 4363 "awkgram.c"
break;
case 190: /* delete_exp_list: bracketed_exp_list */
-#line 2093 "awkgram.y"
+#line 2094 "awkgram.y"
{
INSTRUCTION *ip = yyvsp[0]->lasti;
int count = ip->sub_count; /* # of SUBSEP-seperated expressions */
@@ -4369,11 +4377,11 @@ regular_print:
sub_counter++; /* count # of dimensions */
yyval = yyvsp[0];
}
-#line 4373 "awkgram.c"
+#line 4381 "awkgram.c"
break;
case 191: /* bracketed_exp_list: '[' expression_list ']' */
-#line 2110 "awkgram.y"
+#line 2111 "awkgram.y"
{
INSTRUCTION *t = yyvsp[-1];
if (yyvsp[-1] == NULL) {
@@ -4387,41 +4395,41 @@ regular_print:
yyvsp[0]->sub_count = count_expressions(&t, false);
yyval = list_append(t, yyvsp[0]);
}
-#line 4391 "awkgram.c"
+#line 4399 "awkgram.c"
break;
case 192: /* subscript: bracketed_exp_list */
-#line 2127 "awkgram.y"
+#line 2128 "awkgram.y"
{ yyval = yyvsp[0]; }
-#line 4397 "awkgram.c"
+#line 4405 "awkgram.c"
break;
case 193: /* subscript: subscript bracketed_exp_list */
-#line 2129 "awkgram.y"
+#line 2130 "awkgram.y"
{
yyval = list_merge(yyvsp[-1], yyvsp[0]);
}
-#line 4405 "awkgram.c"
+#line 4413 "awkgram.c"
break;
case 194: /* subscript_list: subscript SUBSCRIPT */
-#line 2136 "awkgram.y"
+#line 2137 "awkgram.y"
{ yyval = yyvsp[-1]; }
-#line 4411 "awkgram.c"
+#line 4419 "awkgram.c"
break;
case 195: /* simple_variable: NAME */
-#line 2141 "awkgram.y"
+#line 2142 "awkgram.y"
{
yyvsp[0]->opcode = Op_push;
yyvsp[0]->memory = variable(yyvsp[0]->source_line, yyvsp[0]->lextok, Node_var_new);
yyval = list_create(yyvsp[0]);
}
-#line 4421 "awkgram.c"
+#line 4429 "awkgram.c"
break;
case 196: /* simple_variable: NAME subscript_list */
-#line 2147 "awkgram.y"
+#line 2148 "awkgram.y"
{
char *arr = yyvsp[-1]->lextok;
@@ -4429,11 +4437,11 @@ regular_print:
yyvsp[-1]->opcode = Op_push_array;
yyval = list_prepend(yyvsp[0], yyvsp[-1]);
}
-#line 4433 "awkgram.c"
+#line 4441 "awkgram.c"
break;
case 197: /* variable: simple_variable */
-#line 2158 "awkgram.y"
+#line 2159 "awkgram.y"
{
INSTRUCTION *ip = yyvsp[0]->nexti;
if (ip->opcode == Op_push
@@ -4445,85 +4453,85 @@ regular_print:
} else
yyval = yyvsp[0];
}
-#line 4449 "awkgram.c"
+#line 4457 "awkgram.c"
break;
case 198: /* variable: '$' non_post_simp_exp opt_incdec */
-#line 2170 "awkgram.y"
+#line 2171 "awkgram.y"
{
yyval = list_append(yyvsp[-1], yyvsp[-2]);
if (yyvsp[0] != NULL)
mk_assignment(yyvsp[-1], NULL, yyvsp[0]);
}
-#line 4459 "awkgram.c"
+#line 4467 "awkgram.c"
break;
case 199: /* opt_incdec: INCREMENT */
-#line 2179 "awkgram.y"
+#line 2180 "awkgram.y"
{
yyvsp[0]->opcode = Op_postincrement;
}
-#line 4467 "awkgram.c"
+#line 4475 "awkgram.c"
break;
case 200: /* opt_incdec: DECREMENT */
-#line 2183 "awkgram.y"
+#line 2184 "awkgram.y"
{
yyvsp[0]->opcode = Op_postdecrement;
}
-#line 4475 "awkgram.c"
+#line 4483 "awkgram.c"
break;
case 201: /* opt_incdec: %empty */
-#line 2187 "awkgram.y"
+#line 2188 "awkgram.y"
{ yyval = NULL; }
-#line 4481 "awkgram.c"
+#line 4489 "awkgram.c"
break;
case 202: /* l_brace: '{' opt_nls */
-#line 2191 "awkgram.y"
+#line 2192 "awkgram.y"
{ yyval = yyvsp[0]; }
-#line 4487 "awkgram.c"
+#line 4495 "awkgram.c"
break;
case 203: /* r_brace: '}' opt_nls */
-#line 2195 "awkgram.y"
+#line 2196 "awkgram.y"
{ yyval = yyvsp[0]; yyerrok; }
-#line 4493 "awkgram.c"
+#line 4501 "awkgram.c"
break;
case 204: /* r_paren: ')' */
-#line 2199 "awkgram.y"
+#line 2200 "awkgram.y"
{ yyerrok; }
-#line 4499 "awkgram.c"
+#line 4507 "awkgram.c"
break;
case 205: /* opt_semi: %empty */
-#line 2204 "awkgram.y"
+#line 2205 "awkgram.y"
{ yyval = NULL; }
-#line 4505 "awkgram.c"
+#line 4513 "awkgram.c"
break;
case 207: /* semi: ';' */
-#line 2209 "awkgram.y"
+#line 2210 "awkgram.y"
{ yyerrok; }
-#line 4511 "awkgram.c"
+#line 4519 "awkgram.c"
break;
case 208: /* colon: ':' */
-#line 2213 "awkgram.y"
+#line 2214 "awkgram.y"
{ yyval = yyvsp[0]; yyerrok; }
-#line 4517 "awkgram.c"
+#line 4525 "awkgram.c"
break;
case 209: /* comma: ',' opt_nls */
-#line 2217 "awkgram.y"
+#line 2218 "awkgram.y"
{ yyval = yyvsp[0]; yyerrok; }
-#line 4523 "awkgram.c"
+#line 4531 "awkgram.c"
break;
-#line 4527 "awkgram.c"
+#line 4535 "awkgram.c"
default: break;
}
@@ -4605,6 +4613,7 @@ yyerrorlab:
label yyerrorlab therefore never appears in user code. */
if (0)
YYERROR;
+ ++yynerrs;
/* Do not reclaim the symbols of the rule whose action triggered
this YYERROR. */
@@ -4665,7 +4674,7 @@ yyerrlab1:
`-------------------------------------*/
yyacceptlab:
yyresult = 0;
- goto yyreturn;
+ goto yyreturnlab;
/*-----------------------------------.
@@ -4673,24 +4682,22 @@ yyacceptlab:
`-----------------------------------*/
yyabortlab:
yyresult = 1;
- goto yyreturn;
+ goto yyreturnlab;
-#if !defined yyoverflow
-/*-------------------------------------------------.
-| yyexhaustedlab -- memory exhaustion comes here. |
-`-------------------------------------------------*/
+/*-----------------------------------------------------------.
+| yyexhaustedlab -- YYNOMEM (memory exhaustion) comes here. |
+`-----------------------------------------------------------*/
yyexhaustedlab:
yyerror (YY_("memory exhausted"));
yyresult = 2;
- goto yyreturn;
-#endif
+ goto yyreturnlab;
-/*-------------------------------------------------------.
-| yyreturn -- parsing is finished, clean up and return. |
-`-------------------------------------------------------*/
-yyreturn:
+/*----------------------------------------------------------.
+| yyreturnlab -- parsing is finished, clean up and return. |
+`----------------------------------------------------------*/
+yyreturnlab:
if (yychar != YYEMPTY)
{
/* Make sure we have latest lookahead translation. See comments at
@@ -4717,7 +4724,7 @@ yyreturn:
return yyresult;
}
-#line 2219 "awkgram.y"
+#line 2220 "awkgram.y"
struct token {