0 | |
/* A Bison parser, made by GNU Bison 3.0.2. */
|
|
0 |
/* A Bison parser, made by GNU Bison 3.3.2. */
|
1 | 1 |
|
2 | 2 |
/* Bison implementation for Yacc-like parsers in C
|
3 | 3 |
|
4 | |
Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc.
|
|
4 |
Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2019 Free Software Foundation,
|
|
5 |
Inc.
|
5 | 6 |
|
6 | 7 |
This program is free software: you can redistribute it and/or modify
|
7 | 8 |
it under the terms of the GNU General Public License as published by
|
|
39 | 40 |
define necessary library symbols; they are noted "INFRINGES ON
|
40 | 41 |
USER NAME SPACE" below. */
|
41 | 42 |
|
|
43 |
/* Undocumented macros, especially those whose name start with YY_,
|
|
44 |
are private implementation details. Do not rely on them. */
|
|
45 |
|
42 | 46 |
/* Identify Bison output. */
|
43 | 47 |
#define YYBISON 1
|
44 | 48 |
|
45 | 49 |
/* Bison version. */
|
46 | |
#define YYBISON_VERSION "3.0.2"
|
|
50 |
#define YYBISON_VERSION "3.3.2"
|
47 | 51 |
|
48 | 52 |
/* Skeleton name. */
|
49 | 53 |
#define YYSKELETON_NAME "yacc.c"
|
|
66 | 70 |
#define yynerrs Mawk_nerrs
|
67 | 71 |
|
68 | 72 |
|
69 | |
/* Copy the first part of user declarations. */
|
70 | |
#line 86 "parse.y" /* yacc.c:339 */
|
|
73 |
/* First part of user prologue. */
|
|
74 |
#line 86 "parse.y" /* yacc.c:337 */
|
71 | 75 |
|
72 | 76 |
#include <stdio.h>
|
73 | 77 |
#include "mawk.h"
|
|
117 | 121 |
#define CODE_FE_PUSHA() mawk_code_ptr->ptr = (PTR) 0 ; code1(FE_PUSHA)
|
118 | 122 |
|
119 | 123 |
|
120 | |
#line 122 "y.tab.c" /* yacc.c:339 */
|
121 | |
|
|
124 |
#line 126 "y.tab.c" /* yacc.c:337 */
|
122 | 125 |
# ifndef YY_NULLPTR
|
123 | |
# if defined __cplusplus && 201103L <= __cplusplus
|
124 | |
# define YY_NULLPTR nullptr
|
|
126 |
# if defined __cplusplus
|
|
127 |
# if 201103L <= __cplusplus
|
|
128 |
# define YY_NULLPTR nullptr
|
|
129 |
# else
|
|
130 |
# define YY_NULLPTR 0
|
|
131 |
# endif
|
125 | 132 |
# else
|
126 | |
# define YY_NULLPTR 0
|
|
133 |
# define YY_NULLPTR ((void*)0)
|
127 | 134 |
# endif
|
128 | 135 |
# endif
|
129 | 136 |
|
|
310 | 317 |
|
311 | 318 |
/* Value type. */
|
312 | 319 |
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
|
313 | |
typedef union YYSTYPE YYSTYPE;
|
|
320 |
|
314 | 321 |
union YYSTYPE
|
315 | 322 |
{
|
316 | |
#line 136 "parse.y" /* yacc.c:355 */
|
|
323 |
#line 136 "parse.y" /* yacc.c:352 */
|
317 | 324 |
|
318 | 325 |
mawk_cell_t *cp ;
|
319 | 326 |
SYMTAB *stp ;
|
|
326 | 333 |
int ival ;
|
327 | 334 |
PTR ptr ;
|
328 | 335 |
|
329 | |
#line 331 "y.tab.c" /* yacc.c:355 */
|
|
336 |
#line 338 "y.tab.c" /* yacc.c:352 */
|
330 | 337 |
};
|
|
338 |
|
|
339 |
typedef union YYSTYPE YYSTYPE;
|
331 | 340 |
# define YYSTYPE_IS_TRIVIAL 1
|
332 | 341 |
# define YYSTYPE_IS_DECLARED 1
|
333 | 342 |
#endif
|
|
338 | 347 |
|
339 | 348 |
#endif /* !YY_MAWK_Y_TAB_H_INCLUDED */
|
340 | 349 |
|
341 | |
/* Copy the second part of user declarations. */
|
342 | |
|
343 | |
#line 345 "y.tab.c" /* yacc.c:358 */
|
|
350 |
|
344 | 351 |
|
345 | 352 |
#ifdef short
|
346 | 353 |
# undef short
|
|
361 | 368 |
#ifdef YYTYPE_UINT16
|
362 | 369 |
typedef YYTYPE_UINT16 yytype_uint16;
|
363 | 370 |
#else
|
364 | |
typedef unsigned short int yytype_uint16;
|
|
371 |
typedef unsigned short yytype_uint16;
|
365 | 372 |
#endif
|
366 | 373 |
|
367 | 374 |
#ifdef YYTYPE_INT16
|
368 | 375 |
typedef YYTYPE_INT16 yytype_int16;
|
369 | 376 |
#else
|
370 | |
typedef short int yytype_int16;
|
|
377 |
typedef short yytype_int16;
|
371 | 378 |
#endif
|
372 | 379 |
|
373 | 380 |
#ifndef YYSIZE_T
|
|
379 | 386 |
# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
|
380 | 387 |
# define YYSIZE_T size_t
|
381 | 388 |
# else
|
382 | |
# define YYSIZE_T unsigned int
|
|
389 |
# define YYSIZE_T unsigned
|
383 | 390 |
# endif
|
384 | 391 |
#endif
|
385 | 392 |
|
|
415 | 422 |
# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
|
416 | 423 |
#endif
|
417 | 424 |
|
418 | |
#if !defined _Noreturn \
|
419 | |
&& (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
|
420 | |
# if defined _MSC_VER && 1200 <= _MSC_VER
|
421 | |
# define _Noreturn __declspec (noreturn)
|
422 | |
# else
|
423 | |
# define _Noreturn YY_ATTRIBUTE ((__noreturn__))
|
424 | |
# endif
|
425 | |
#endif
|
426 | |
|
427 | 425 |
/* Suppress unused-variable warnings by "using" E. */
|
428 | 426 |
#if ! defined lint || defined __GNUC__
|
429 | 427 |
# define YYUSE(E) ((void) (E))
|
|
431 | 429 |
# define YYUSE(E) /* empty */
|
432 | 430 |
#endif
|
433 | 431 |
|
434 | |
#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
|
|
432 |
#if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
|
435 | 433 |
/* Suppress an incorrect diagnostic about yylval being uninitialized. */
|
436 | 434 |
# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
|
437 | 435 |
_Pragma ("GCC diagnostic push") \
|
|
593 | 591 |
/* YYNSTATES -- Number of states. */
|
594 | 592 |
#define YYNSTATES 360
|
595 | 593 |
|
596 | |
/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
|
597 | |
by yylex, with out-of-bounds checking. */
|
598 | 594 |
#define YYUNDEFTOK 2
|
599 | 595 |
#define YYMAXUTOK 333
|
600 | 596 |
|
|
597 |
/* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
|
|
598 |
as returned by yylex, with out-of-bounds checking. */
|
601 | 599 |
#define YYTRANSLATE(YYX) \
|
602 | |
((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
|
|
600 |
((unsigned) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
|
603 | 601 |
|
604 | 602 |
/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
|
605 | |
as returned by yylex, without out-of-bounds checking. */
|
|
603 |
as returned by yylex. */
|
606 | 604 |
static const yytype_uint8 yytranslate[] =
|
607 | 605 |
{
|
608 | 606 |
0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
|
662 | 660 |
861, 862, 868, 872, 879, 881, 905, 912, 935, 938,
|
663 | 661 |
941, 944, 949, 956, 962, 967, 972, 979, 983, 983,
|
664 | 662 |
983, 985, 989, 997, 1016, 1017, 1021, 1026, 1034, 1042,
|
665 | |
1061, 1084, 1091, 1092, 1095, 1101, 1114, 1126, 1138, 1147,
|
666 | |
1149, 1164, 1166, 1173, 1182, 1188, 1196
|
|
663 |
1061, 1084, 1091, 1092, 1095, 1101, 1114, 1126, 1137, 1148,
|
|
664 |
1150, 1165, 1167, 1174, 1183, 1189, 1197
|
667 | 665 |
};
|
668 | 666 |
#endif
|
669 | 667 |
|
|
1173 | 1171 |
|
1174 | 1172 |
#define YYRECOVERING() (!!yyerrstatus)
|
1175 | 1173 |
|
1176 | |
#define YYBACKUP(Token, Value) \
|
1177 | |
do \
|
1178 | |
if (yychar == YYEMPTY) \
|
1179 | |
{ \
|
1180 | |
yychar = (Token); \
|
1181 | |
yylval = (Value); \
|
1182 | |
YYPOPSTACK (yylen); \
|
1183 | |
yystate = *yyssp; \
|
1184 | |
goto yybackup; \
|
1185 | |
} \
|
1186 | |
else \
|
1187 | |
{ \
|
1188 | |
yyerror (MAWK, YY_("syntax error: cannot back up")); \
|
1189 | |
YYERROR; \
|
1190 | |
} \
|
1191 | |
while (0)
|
|
1174 |
#define YYBACKUP(Token, Value) \
|
|
1175 |
do \
|
|
1176 |
if (yychar == YYEMPTY) \
|
|
1177 |
{ \
|
|
1178 |
yychar = (Token); \
|
|
1179 |
yylval = (Value); \
|
|
1180 |
YYPOPSTACK (yylen); \
|
|
1181 |
yystate = *yyssp; \
|
|
1182 |
goto yybackup; \
|
|
1183 |
} \
|
|
1184 |
else \
|
|
1185 |
{ \
|
|
1186 |
yyerror (MAWK, YY_("syntax error: cannot back up")); \
|
|
1187 |
YYERROR; \
|
|
1188 |
} \
|
|
1189 |
while (0)
|
1192 | 1190 |
|
1193 | 1191 |
/* Error token number */
|
1194 | 1192 |
#define YYTERROR 1
|
|
1228 | 1226 |
} while (0)
|
1229 | 1227 |
|
1230 | 1228 |
|
1231 | |
/*----------------------------------------.
|
1232 | |
| Print this symbol's value on YYOUTPUT. |
|
1233 | |
`----------------------------------------*/
|
|
1229 |
/*-----------------------------------.
|
|
1230 |
| Print this symbol's value on YYO. |
|
|
1231 |
`-----------------------------------*/
|
1234 | 1232 |
|
1235 | 1233 |
static void
|
1236 | |
yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, mawk_state_t *MAWK)
|
|
1234 |
yy_symbol_value_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep, mawk_state_t *MAWK)
|
1237 | 1235 |
{
|
1238 | |
FILE *yyo = yyoutput;
|
1239 | |
YYUSE (yyo);
|
|
1236 |
FILE *yyoutput = yyo;
|
|
1237 |
YYUSE (yyoutput);
|
1240 | 1238 |
YYUSE (MAWK);
|
1241 | 1239 |
if (!yyvaluep)
|
1242 | 1240 |
return;
|
1243 | 1241 |
# ifdef YYPRINT
|
1244 | 1242 |
if (yytype < YYNTOKENS)
|
1245 | |
YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
|
|
1243 |
YYPRINT (yyo, yytoknum[yytype], *yyvaluep);
|
1246 | 1244 |
# endif
|
1247 | 1245 |
YYUSE (yytype);
|
1248 | 1246 |
}
|
1249 | 1247 |
|
1250 | 1248 |
|
1251 | |
/*--------------------------------.
|
1252 | |
| Print this symbol on YYOUTPUT. |
|
1253 | |
`--------------------------------*/
|
|
1249 |
/*---------------------------.
|
|
1250 |
| Print this symbol on YYO. |
|
|
1251 |
`---------------------------*/
|
1254 | 1252 |
|
1255 | 1253 |
static void
|
1256 | |
yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, mawk_state_t *MAWK)
|
|
1254 |
yy_symbol_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep, mawk_state_t *MAWK)
|
1257 | 1255 |
{
|
1258 | |
YYFPRINTF (yyoutput, "%s %s (",
|
|
1256 |
YYFPRINTF (yyo, "%s %s (",
|
1259 | 1257 |
yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
|
1260 | 1258 |
|
1261 | |
yy_symbol_value_print (yyoutput, yytype, yyvaluep, MAWK);
|
1262 | |
YYFPRINTF (yyoutput, ")");
|
|
1259 |
yy_symbol_value_print (yyo, yytype, yyvaluep, MAWK);
|
|
1260 |
YYFPRINTF (yyo, ")");
|
1263 | 1261 |
}
|
1264 | 1262 |
|
1265 | 1263 |
/*------------------------------------------------------------------.
|
|
1293 | 1291 |
static void
|
1294 | 1292 |
yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule, mawk_state_t *MAWK)
|
1295 | 1293 |
{
|
1296 | |
unsigned long int yylno = yyrline[yyrule];
|
|
1294 |
unsigned long yylno = yyrline[yyrule];
|
1297 | 1295 |
int yynrhs = yyr2[yyrule];
|
1298 | 1296 |
int yyi;
|
1299 | 1297 |
YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
|
|
1304 | 1302 |
YYFPRINTF (stderr, " $%d = ", yyi + 1);
|
1305 | 1303 |
yy_symbol_print (stderr,
|
1306 | 1304 |
yystos[yyssp[yyi + 1 - yynrhs]],
|
1307 | |
&(yyvsp[(yyi + 1) - (yynrhs)])
|
|
1305 |
&yyvsp[(yyi + 1) - (yynrhs)]
|
1308 | 1306 |
, MAWK);
|
1309 | 1307 |
YYFPRINTF (stderr, "\n");
|
1310 | 1308 |
}
|
|
1408 | 1406 |
case '\\':
|
1409 | 1407 |
if (*++yyp != '\\')
|
1410 | 1408 |
goto do_not_strip_quotes;
|
1411 | |
/* Fall through. */
|
|
1409 |
else
|
|
1410 |
goto append;
|
|
1411 |
|
|
1412 |
append:
|
1412 | 1413 |
default:
|
1413 | 1414 |
if (yyres)
|
1414 | 1415 |
yyres[yyn] = *yyp;
|
|
1426 | 1427 |
if (! yyres)
|
1427 | 1428 |
return yystrlen (yystr);
|
1428 | 1429 |
|
1429 | |
return yystpcpy (yyres, yystr) - yyres;
|
|
1430 |
return (YYSIZE_T) (yystpcpy (yyres, yystr) - yyres);
|
1430 | 1431 |
}
|
1431 | 1432 |
# endif
|
1432 | 1433 |
|
|
1504 | 1505 |
yyarg[yycount++] = yytname[yyx];
|
1505 | 1506 |
{
|
1506 | 1507 |
YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
|
1507 | |
if (! (yysize <= yysize1
|
1508 | |
&& yysize1 <= YYSTACK_ALLOC_MAXIMUM))
|
|
1508 |
if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)
|
|
1509 |
yysize = yysize1;
|
|
1510 |
else
|
1509 | 1511 |
return 2;
|
1510 | |
yysize = yysize1;
|
1511 | 1512 |
}
|
1512 | 1513 |
}
|
1513 | 1514 |
}
|
|
1519 | 1520 |
case N: \
|
1520 | 1521 |
yyformat = S; \
|
1521 | 1522 |
break
|
|
1523 |
default: /* Avoid compiler warnings. */
|
1522 | 1524 |
YYCASE_(0, YY_("syntax error"));
|
1523 | 1525 |
YYCASE_(1, YY_("syntax error, unexpected %s"));
|
1524 | 1526 |
YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
|
|
1530 | 1532 |
|
1531 | 1533 |
{
|
1532 | 1534 |
YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
|
1533 | |
if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
|
|
1535 |
if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)
|
|
1536 |
yysize = yysize1;
|
|
1537 |
else
|
1534 | 1538 |
return 2;
|
1535 | |
yysize = yysize1;
|
1536 | 1539 |
}
|
1537 | 1540 |
|
1538 | 1541 |
if (*yymsg_alloc < yysize)
|
|
1663 | 1666 |
yychar = YYEMPTY; /* Cause a token to be read. */
|
1664 | 1667 |
goto yysetstate;
|
1665 | 1668 |
|
|
1669 |
|
1666 | 1670 |
/*------------------------------------------------------------.
|
1667 | |
| yynewstate -- Push a new state, which is found in yystate. |
|
|
1671 |
| yynewstate -- push a new state, which is found in yystate. |
|
1668 | 1672 |
`------------------------------------------------------------*/
|
1669 | |
yynewstate:
|
|
1673 |
yynewstate:
|
1670 | 1674 |
/* In all cases, when you get here, the value and location stacks
|
1671 | 1675 |
have just been pushed. So pushing a state here evens the stacks. */
|
1672 | 1676 |
yyssp++;
|
1673 | 1677 |
|
1674 | |
yysetstate:
|
1675 | |
*yyssp = yystate;
|
|
1678 |
|
|
1679 |
/*--------------------------------------------------------------------.
|
|
1680 |
| yynewstate -- set current state (the top of the stack) to yystate. |
|
|
1681 |
`--------------------------------------------------------------------*/
|
|
1682 |
yysetstate:
|
|
1683 |
*yyssp = (yytype_int16) yystate;
|
1676 | 1684 |
|
1677 | 1685 |
if (yyss + yystacksize - 1 <= yyssp)
|
|
1686 |
#if !defined yyoverflow && !defined YYSTACK_RELOCATE
|
|
1687 |
goto yyexhaustedlab;
|
|
1688 |
#else
|
1678 | 1689 |
{
|
1679 | 1690 |
/* Get the current used size of the three stacks, in elements. */
|
1680 | |
YYSIZE_T yysize = yyssp - yyss + 1;
|
1681 | |
|
1682 | |
#ifdef yyoverflow
|
|
1691 |
YYSIZE_T yysize = (YYSIZE_T) (yyssp - yyss + 1);
|
|
1692 |
|
|
1693 |
# if defined yyoverflow
|
1683 | 1694 |
{
|
1684 | 1695 |
/* Give user a chance to reallocate the stack. Use copies of
|
1685 | 1696 |
these so that the &'s don't force the real ones into
|
|
1695 | 1706 |
&yyss1, yysize * sizeof (*yyssp),
|
1696 | 1707 |
&yyvs1, yysize * sizeof (*yyvsp),
|
1697 | 1708 |
&yystacksize);
|
1698 | |
|
1699 | 1709 |
yyss = yyss1;
|
1700 | 1710 |
yyvs = yyvs1;
|
1701 | 1711 |
}
|
1702 | |
#else /* no yyoverflow */
|
1703 | |
# ifndef YYSTACK_RELOCATE
|
1704 | |
goto yyexhaustedlab;
|
1705 | |
# else
|
|
1712 |
# else /* defined YYSTACK_RELOCATE */
|
1706 | 1713 |
/* Extend the stack our own way. */
|
1707 | 1714 |
if (YYMAXDEPTH <= yystacksize)
|
1708 | 1715 |
goto yyexhaustedlab;
|
|
1718 | 1725 |
goto yyexhaustedlab;
|
1719 | 1726 |
YYSTACK_RELOCATE (yyss_alloc, yyss);
|
1720 | 1727 |
YYSTACK_RELOCATE (yyvs_alloc, yyvs);
|
1721 | |
# undef YYSTACK_RELOCATE
|
|
1728 |
# undef YYSTACK_RELOCATE
|
1722 | 1729 |
if (yyss1 != yyssa)
|
1723 | 1730 |
YYSTACK_FREE (yyss1);
|
1724 | 1731 |
}
|
1725 | 1732 |
# endif
|
1726 | |
#endif /* no yyoverflow */
|
1727 | 1733 |
|
1728 | 1734 |
yyssp = yyss + yysize - 1;
|
1729 | 1735 |
yyvsp = yyvs + yysize - 1;
|
1730 | 1736 |
|
1731 | 1737 |
YYDPRINTF ((stderr, "Stack size increased to %lu\n",
|
1732 | |
(unsigned long int) yystacksize));
|
|
1738 |
(unsigned long) yystacksize));
|
1733 | 1739 |
|
1734 | 1740 |
if (yyss + yystacksize - 1 <= yyssp)
|
1735 | 1741 |
YYABORT;
|
1736 | 1742 |
}
|
|
1743 |
#endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */
|
1737 | 1744 |
|
1738 | 1745 |
YYDPRINTF ((stderr, "Entering state %d\n", yystate));
|
1739 | 1746 |
|
|
1741 | 1748 |
YYACCEPT;
|
1742 | 1749 |
|
1743 | 1750 |
goto yybackup;
|
|
1751 |
|
1744 | 1752 |
|
1745 | 1753 |
/*-----------.
|
1746 | 1754 |
| yybackup. |
|
1747 | 1755 |
`-----------*/
|
1748 | 1756 |
yybackup:
|
1749 | |
|
1750 | 1757 |
/* Do appropriate processing given the current state. Read a
|
1751 | 1758 |
lookahead token if we need one and don't already have one. */
|
1752 | 1759 |
|
|
1819 | 1826 |
|
1820 | 1827 |
|
1821 | 1828 |
/*-----------------------------.
|
1822 | |
| yyreduce -- Do a reduction. |
|
|
1829 |
| yyreduce -- do a reduction. |
|
1823 | 1830 |
`-----------------------------*/
|
1824 | 1831 |
yyreduce:
|
1825 | 1832 |
/* yyn is the number of a rule to reduce with. */
|
|
1840 | 1847 |
switch (yyn)
|
1841 | 1848 |
{
|
1842 | 1849 |
case 7:
|
1843 | |
#line 223 "parse.y" /* yacc.c:1646 */
|
|
1850 |
#line 223 "parse.y" /* yacc.c:1652 */
|
1844 | 1851 |
{ /* this do nothing action removes a vacuous warning
|
1845 | 1852 |
from Bison */
|
1846 | 1853 |
}
|
1847 | |
#line 1849 "y.tab.c" /* yacc.c:1646 */
|
|
1854 |
#line 1856 "y.tab.c" /* yacc.c:1652 */
|
1848 | 1855 |
break;
|
1849 | 1856 |
|
1850 | 1857 |
case 10:
|
1851 | |
#line 232 "parse.y" /* yacc.c:1646 */
|
|
1858 |
#line 232 "parse.y" /* yacc.c:1652 */
|
1852 | 1859 |
{ mawk_be_setup(MAWK, MAWK->scope = SCOPE_BEGIN) ; }
|
1853 | |
#line 1855 "y.tab.c" /* yacc.c:1646 */
|
|
1860 |
#line 1862 "y.tab.c" /* yacc.c:1652 */
|
1854 | 1861 |
break;
|
1855 | 1862 |
|
1856 | 1863 |
case 11:
|
1857 | |
#line 235 "parse.y" /* yacc.c:1646 */
|
|
1864 |
#line 235 "parse.y" /* yacc.c:1652 */
|
1858 | 1865 |
{ switch_code_to_main(MAWK) ; }
|
1859 | |
#line 1861 "y.tab.c" /* yacc.c:1646 */
|
|
1866 |
#line 1868 "y.tab.c" /* yacc.c:1652 */
|
1860 | 1867 |
break;
|
1861 | 1868 |
|
1862 | 1869 |
case 12:
|
1863 | |
#line 238 "parse.y" /* yacc.c:1646 */
|
|
1870 |
#line 238 "parse.y" /* yacc.c:1652 */
|
1864 | 1871 |
{ mawk_be_setup(MAWK, MAWK->scope = SCOPE_END) ; }
|
1865 | |
#line 1867 "y.tab.c" /* yacc.c:1646 */
|
|
1872 |
#line 1874 "y.tab.c" /* yacc.c:1652 */
|
1866 | 1873 |
break;
|
1867 | 1874 |
|
1868 | 1875 |
case 13:
|
1869 | |
#line 241 "parse.y" /* yacc.c:1646 */
|
|
1876 |
#line 241 "parse.y" /* yacc.c:1652 */
|
1870 | 1877 |
{ switch_code_to_main(MAWK) ; }
|
1871 | |
#line 1873 "y.tab.c" /* yacc.c:1646 */
|
|
1878 |
#line 1880 "y.tab.c" /* yacc.c:1652 */
|
1872 | 1879 |
break;
|
1873 | 1880 |
|
1874 | 1881 |
case 14:
|
1875 | |
#line 244 "parse.y" /* yacc.c:1646 */
|
|
1882 |
#line 244 "parse.y" /* yacc.c:1652 */
|
1876 | 1883 |
{ mawk_code_jmp(MAWK, _JZ, (INST*)0) ; }
|
1877 | |
#line 1879 "y.tab.c" /* yacc.c:1646 */
|
|
1884 |
#line 1886 "y.tab.c" /* yacc.c:1652 */
|
1878 | 1885 |
break;
|
1879 | 1886 |
|
1880 | 1887 |
case 15:
|
1881 | |
#line 247 "parse.y" /* yacc.c:1646 */
|
|
1888 |
#line 247 "parse.y" /* yacc.c:1652 */
|
1882 | 1889 |
{ mawk_patch_jmp(MAWK, mawk_code_ptr ) ; }
|
1883 | |
#line 1885 "y.tab.c" /* yacc.c:1646 */
|
|
1890 |
#line 1892 "y.tab.c" /* yacc.c:1652 */
|
1884 | 1891 |
break;
|
1885 | 1892 |
|
1886 | 1893 |
case 16:
|
1887 | |
#line 251 "parse.y" /* yacc.c:1646 */
|
|
1894 |
#line 251 "parse.y" /* yacc.c:1652 */
|
1888 | 1895 |
{
|
1889 | 1896 |
INST *p1 = CDP((yyvsp[-1].start)) ;
|
1890 | 1897 |
int len ;
|
|
1900 | 1907 |
p1 = CDP((yyvsp[-1].start)) ;
|
1901 | 1908 |
p1[2].op = mawk_code_ptr - (p1+1) ;
|
1902 | 1909 |
}
|
1903 | |
#line 1905 "y.tab.c" /* yacc.c:1646 */
|
|
1910 |
#line 1912 "y.tab.c" /* yacc.c:1652 */
|
1904 | 1911 |
break;
|
1905 | 1912 |
|
1906 | 1913 |
case 17:
|
1907 | |
#line 267 "parse.y" /* yacc.c:1646 */
|
|
1914 |
#line 267 "parse.y" /* yacc.c:1652 */
|
1908 | 1915 |
{ code1(_RANGE_STOP) ; }
|
1909 | |
#line 1911 "y.tab.c" /* yacc.c:1646 */
|
|
1916 |
#line 1918 "y.tab.c" /* yacc.c:1652 */
|
1910 | 1917 |
break;
|
1911 | 1918 |
|
1912 | 1919 |
case 18:
|
1913 | |
#line 270 "parse.y" /* yacc.c:1646 */
|
|
1920 |
#line 270 "parse.y" /* yacc.c:1652 */
|
1914 | 1921 |
{
|
1915 | 1922 |
INST *p1 = CDP((yyvsp[-5].start)) ;
|
1916 | 1923 |
|
1917 | 1924 |
p1[3].op = CDP((yyvsp[0].start)) - (p1+1) ;
|
1918 | 1925 |
p1[4].op = mawk_code_ptr - (p1+1) ;
|
1919 | 1926 |
}
|
1920 | |
#line 1922 "y.tab.c" /* yacc.c:1646 */
|
|
1927 |
#line 1929 "y.tab.c" /* yacc.c:1652 */
|
1921 | 1928 |
break;
|
1922 | 1929 |
|
1923 | 1930 |
case 19:
|
1924 | |
#line 281 "parse.y" /* yacc.c:1646 */
|
|
1931 |
#line 281 "parse.y" /* yacc.c:1652 */
|
1925 | 1932 |
{ (yyval.start) = (yyvsp[-1].start) ; }
|
1926 | |
#line 1928 "y.tab.c" /* yacc.c:1646 */
|
|
1933 |
#line 1935 "y.tab.c" /* yacc.c:1652 */
|
1927 | 1934 |
break;
|
1928 | 1935 |
|
1929 | 1936 |
case 20:
|
1930 | |
#line 283 "parse.y" /* yacc.c:1646 */
|
|
1937 |
#line 283 "parse.y" /* yacc.c:1652 */
|
1931 | 1938 |
{ (yyval.start) = mawk_code_offset ; /* does nothing won't be mawk_executed */
|
1932 | 1939 |
MAWK->print_flag = MAWK->getline_flag = MAWK->paren_cnt = 0 ;
|
1933 | 1940 |
yyerrok ; }
|
1934 | |
#line 1936 "y.tab.c" /* yacc.c:1646 */
|
|
1941 |
#line 1943 "y.tab.c" /* yacc.c:1652 */
|
1935 | 1942 |
break;
|
1936 | 1943 |
|
1937 | 1944 |
case 22:
|
1938 | |
#line 290 "parse.y" /* yacc.c:1646 */
|
|
1945 |
#line 290 "parse.y" /* yacc.c:1652 */
|
1939 | 1946 |
{ (yyval.start) = mawk_code_offset ;
|
1940 | 1947 |
code1(_PUSHINT) ; code1(0) ;
|
1941 | 1948 |
code2(MAWK, _PRINT, mawk_f2d(mawk_bi_print)) ;
|
1942 | 1949 |
}
|
1943 | |
#line 1945 "y.tab.c" /* yacc.c:1646 */
|
|
1950 |
#line 1952 "y.tab.c" /* yacc.c:1652 */
|
1944 | 1951 |
break;
|
1945 | 1952 |
|
1946 | 1953 |
case 26:
|
1947 | |
#line 302 "parse.y" /* yacc.c:1646 */
|
|
1954 |
#line 302 "parse.y" /* yacc.c:1652 */
|
1948 | 1955 |
{ code1(_POP) ; }
|
1949 | |
#line 1951 "y.tab.c" /* yacc.c:1646 */
|
|
1956 |
#line 1958 "y.tab.c" /* yacc.c:1652 */
|
1950 | 1957 |
break;
|
1951 | 1958 |
|
1952 | 1959 |
case 27:
|
1953 | |
#line 304 "parse.y" /* yacc.c:1646 */
|
|
1960 |
#line 304 "parse.y" /* yacc.c:1652 */
|
1954 | 1961 |
{ (yyval.start) = mawk_code_offset ; }
|
1955 | |
#line 1957 "y.tab.c" /* yacc.c:1646 */
|
|
1962 |
#line 1964 "y.tab.c" /* yacc.c:1652 */
|
1956 | 1963 |
break;
|
1957 | 1964 |
|
1958 | 1965 |
case 28:
|
1959 | |
#line 306 "parse.y" /* yacc.c:1646 */
|
|
1966 |
#line 306 "parse.y" /* yacc.c:1652 */
|
1960 | 1967 |
{ (yyval.start) = mawk_code_offset ;
|
1961 | 1968 |
MAWK->print_flag = MAWK->getline_flag = 0 ;
|
1962 | 1969 |
MAWK->paren_cnt = 0 ;
|
1963 | 1970 |
yyerrok ;
|
1964 | 1971 |
}
|
1965 | |
#line 1967 "y.tab.c" /* yacc.c:1646 */
|
|
1972 |
#line 1974 "y.tab.c" /* yacc.c:1652 */
|
1966 | 1973 |
break;
|
1967 | 1974 |
|
1968 | 1975 |
case 29:
|
1969 | |
#line 312 "parse.y" /* yacc.c:1646 */
|
|
1976 |
#line 312 "parse.y" /* yacc.c:1652 */
|
1970 | 1977 |
{ (yyval.start) = mawk_code_offset ; mawk_BC_insert(MAWK, 'B', mawk_code_ptr+1) ;
|
1971 | 1978 |
code2(MAWK, _JMP, 0) /* don't use mawk_code_jmp ! */ ; }
|
1972 | |
#line 1974 "y.tab.c" /* yacc.c:1646 */
|
|
1979 |
#line 1981 "y.tab.c" /* yacc.c:1652 */
|
1973 | 1980 |
break;
|
1974 | 1981 |
|
1975 | 1982 |
case 30:
|
1976 | |
#line 315 "parse.y" /* yacc.c:1646 */
|
|
1983 |
#line 315 "parse.y" /* yacc.c:1652 */
|
1977 | 1984 |
{ (yyval.start) = mawk_code_offset ; mawk_BC_insert(MAWK, 'C', mawk_code_ptr+1) ;
|
1978 | 1985 |
code2(MAWK, _JMP, 0) ; }
|
1979 | |
#line 1981 "y.tab.c" /* yacc.c:1646 */
|
|
1986 |
#line 1988 "y.tab.c" /* yacc.c:1652 */
|
1980 | 1987 |
break;
|
1981 | 1988 |
|
1982 | 1989 |
case 31:
|
1983 | |
#line 318 "parse.y" /* yacc.c:1646 */
|
|
1990 |
#line 318 "parse.y" /* yacc.c:1652 */
|
1984 | 1991 |
{ if ( MAWK->scope != SCOPE_FUNCT )
|
1985 | 1992 |
mawk_compile_error(MAWK, "return outside function body") ;
|
1986 | 1993 |
}
|
1987 | |
#line 1989 "y.tab.c" /* yacc.c:1646 */
|
|
1994 |
#line 1996 "y.tab.c" /* yacc.c:1652 */
|
1988 | 1995 |
break;
|
1989 | 1996 |
|
1990 | 1997 |
case 32:
|
1991 | |
#line 322 "parse.y" /* yacc.c:1646 */
|
|
1998 |
#line 322 "parse.y" /* yacc.c:1652 */
|
1992 | 1999 |
{ if ( MAWK->scope != SCOPE_MAIN )
|
1993 | 2000 |
mawk_compile_error(MAWK, "improper use of next" ) ;
|
1994 | 2001 |
(yyval.start) = mawk_code_offset ;
|
1995 | 2002 |
code1(_NEXT) ;
|
1996 | 2003 |
}
|
1997 | |
#line 1999 "y.tab.c" /* yacc.c:1646 */
|
|
2004 |
#line 2006 "y.tab.c" /* yacc.c:1652 */
|
1998 | 2005 |
break;
|
1999 | 2006 |
|
2000 | 2007 |
case 36:
|
2001 | |
#line 333 "parse.y" /* yacc.c:1646 */
|
|
2008 |
#line 333 "parse.y" /* yacc.c:1652 */
|
2002 | 2009 |
{ code1(_ASSIGN) ; }
|
2003 | |
#line 2005 "y.tab.c" /* yacc.c:1646 */
|
|
2010 |
#line 2012 "y.tab.c" /* yacc.c:1652 */
|
2004 | 2011 |
break;
|
2005 | 2012 |
|
2006 | 2013 |
case 37:
|
2007 | |
#line 334 "parse.y" /* yacc.c:1646 */
|
|
2014 |
#line 334 "parse.y" /* yacc.c:1652 */
|
2008 | 2015 |
{ code1(_ADD_ASG) ; }
|
2009 | |
#line 2011 "y.tab.c" /* yacc.c:1646 */
|
|
2016 |
#line 2018 "y.tab.c" /* yacc.c:1652 */
|
2010 | 2017 |
break;
|
2011 | 2018 |
|
2012 | 2019 |
case 38:
|
2013 | |
#line 335 "parse.y" /* yacc.c:1646 */
|
|
2020 |
#line 335 "parse.y" /* yacc.c:1652 */
|
2014 | 2021 |
{ code1(_SUB_ASG) ; }
|
2015 | |
#line 2017 "y.tab.c" /* yacc.c:1646 */
|
|
2022 |
#line 2024 "y.tab.c" /* yacc.c:1652 */
|
2016 | 2023 |
break;
|
2017 | 2024 |
|
2018 | 2025 |
case 39:
|
2019 | |
#line 336 "parse.y" /* yacc.c:1646 */
|
|
2026 |
#line 336 "parse.y" /* yacc.c:1652 */
|
2020 | 2027 |
{ code1(_MUL_ASG) ; }
|
2021 | |
#line 2023 "y.tab.c" /* yacc.c:1646 */
|
|
2028 |
#line 2030 "y.tab.c" /* yacc.c:1652 */
|
2022 | 2029 |
break;
|
2023 | 2030 |
|
2024 | 2031 |
case 40:
|
2025 | |
#line 337 "parse.y" /* yacc.c:1646 */
|
|
2032 |
#line 337 "parse.y" /* yacc.c:1652 */
|
2026 | 2033 |
{ code1(_DIV_ASG) ; }
|
2027 | |
#line 2029 "y.tab.c" /* yacc.c:1646 */
|
|
2034 |
#line 2036 "y.tab.c" /* yacc.c:1652 */
|
2028 | 2035 |
break;
|
2029 | 2036 |
|
2030 | 2037 |
case 41:
|
2031 | |
#line 338 "parse.y" /* yacc.c:1646 */
|
|
2038 |
#line 338 "parse.y" /* yacc.c:1652 */
|
2032 | 2039 |
{ code1(_MOD_ASG) ; }
|
2033 | |
#line 2035 "y.tab.c" /* yacc.c:1646 */
|
|
2040 |
#line 2042 "y.tab.c" /* yacc.c:1652 */
|
2034 | 2041 |
break;
|
2035 | 2042 |
|
2036 | 2043 |
case 42:
|
2037 | |
#line 339 "parse.y" /* yacc.c:1646 */
|
|
2044 |
#line 339 "parse.y" /* yacc.c:1652 */
|
2038 | 2045 |
{ code1(_POW_ASG) ; }
|
2039 | |
#line 2041 "y.tab.c" /* yacc.c:1646 */
|
|
2046 |
#line 2048 "y.tab.c" /* yacc.c:1652 */
|
2040 | 2047 |
break;
|
2041 | 2048 |
|
2042 | 2049 |
case 43:
|
2043 | |
#line 340 "parse.y" /* yacc.c:1646 */
|
|
2050 |
#line 340 "parse.y" /* yacc.c:1652 */
|
2044 | 2051 |
{ code1(_ASSIGN_ARR) ; }
|
2045 | |
#line 2047 "y.tab.c" /* yacc.c:1646 */
|
|
2052 |
#line 2054 "y.tab.c" /* yacc.c:1652 */
|
2046 | 2053 |
break;
|
2047 | 2054 |
|
2048 | 2055 |
case 44:
|
2049 | |
#line 341 "parse.y" /* yacc.c:1646 */
|
|
2056 |
#line 341 "parse.y" /* yacc.c:1652 */
|
2050 | 2057 |
{ code1(_ADD_ASG_ARR) ; }
|
2051 | |
#line 2053 "y.tab.c" /* yacc.c:1646 */
|
|
2058 |
#line 2060 "y.tab.c" /* yacc.c:1652 */
|
2052 | 2059 |
break;
|
2053 | 2060 |
|
2054 | 2061 |
case 45:
|
2055 | |
#line 342 "parse.y" /* yacc.c:1646 */
|
|
2062 |
#line 342 "parse.y" /* yacc.c:1652 */
|
2056 | 2063 |
{ code1(_SUB_ASG_ARR) ; }
|
2057 | |
#line 2059 "y.tab.c" /* yacc.c:1646 */
|
|
2064 |
#line 2066 "y.tab.c" /* yacc.c:1652 */
|
2058 | 2065 |
break;
|
2059 | 2066 |
|
2060 | 2067 |
case 46:
|
2061 | |
#line 343 "parse.y" /* yacc.c:1646 */
|
|
2068 |
#line 343 "parse.y" /* yacc.c:1652 */
|
2062 | 2069 |
{ code1(_MUL_ASG_ARR) ; }
|
2063 | |
#line 2065 "y.tab.c" /* yacc.c:1646 */
|
|
2070 |
#line 2072 "y.tab.c" /* yacc.c:1652 */
|
2064 | 2071 |
break;
|
2065 | 2072 |
|
2066 | 2073 |
case 47:
|
2067 | |
#line 344 "parse.y" /* yacc.c:1646 */
|
|
2074 |
#line 344 "parse.y" /* yacc.c:1652 */
|
2068 | 2075 |
{ code1(_DIV_ASG_ARR) ; }
|
2069 | |
#line 2071 "y.tab.c" /* yacc.c:1646 */
|
|
2076 |
#line 2078 "y.tab.c" /* yacc.c:1652 */
|
2070 | 2077 |
break;
|
2071 | 2078 |
|
2072 | 2079 |
case 48:
|
2073 | |
#line 345 "parse.y" /* yacc.c:1646 */
|
|
2080 |
#line 345 "parse.y" /* yacc.c:1652 */
|
2074 | 2081 |
{ code1(_MOD_ASG_ARR) ; }
|
2075 | |
#line 2077 "y.tab.c" /* yacc.c:1646 */
|
|
2082 |
#line 2084 "y.tab.c" /* yacc.c:1652 */
|
2076 | 2083 |
break;
|
2077 | 2084 |
|
2078 | 2085 |
case 49:
|
2079 | |
#line 346 "parse.y" /* yacc.c:1646 */
|
|
2086 |
#line 346 "parse.y" /* yacc.c:1652 */
|
2080 | 2087 |
{ code1(_POW_ASG_ARR) ; }
|
2081 | |
#line 2083 "y.tab.c" /* yacc.c:1646 */
|
|
2088 |
#line 2090 "y.tab.c" /* yacc.c:1652 */
|
2082 | 2089 |
break;
|
2083 | 2090 |
|
2084 | 2091 |
case 50:
|
2085 | |
#line 347 "parse.y" /* yacc.c:1646 */
|
|
2092 |
#line 347 "parse.y" /* yacc.c:1652 */
|
2086 | 2093 |
{ code1(_EQ) ; }
|
2087 | |
#line 2089 "y.tab.c" /* yacc.c:1646 */
|
|
2094 |
#line 2096 "y.tab.c" /* yacc.c:1652 */
|
2088 | 2095 |
break;
|
2089 | 2096 |
|
2090 | 2097 |
case 51:
|
2091 | |
#line 348 "parse.y" /* yacc.c:1646 */
|
|
2098 |
#line 348 "parse.y" /* yacc.c:1652 */
|
2092 | 2099 |
{ code1(_NEQ) ; }
|
2093 | |
#line 2095 "y.tab.c" /* yacc.c:1646 */
|
|
2100 |
#line 2102 "y.tab.c" /* yacc.c:1652 */
|
2094 | 2101 |
break;
|
2095 | 2102 |
|
2096 | 2103 |
case 52:
|
2097 | |
#line 349 "parse.y" /* yacc.c:1646 */
|
|
2104 |
#line 349 "parse.y" /* yacc.c:1652 */
|
2098 | 2105 |
{ code1(_LT) ; }
|
2099 | |
#line 2101 "y.tab.c" /* yacc.c:1646 */
|
|
2106 |
#line 2108 "y.tab.c" /* yacc.c:1652 */
|
2100 | 2107 |
break;
|
2101 | 2108 |
|
2102 | 2109 |
case 53:
|
2103 | |
#line 350 "parse.y" /* yacc.c:1646 */
|
|
2110 |
#line 350 "parse.y" /* yacc.c:1652 */
|
2104 | 2111 |
{ code1(_LTE) ; }
|
2105 | |
#line 2107 "y.tab.c" /* yacc.c:1646 */
|
|
2112 |
#line 2114 "y.tab.c" /* yacc.c:1652 */
|
2106 | 2113 |
break;
|
2107 | 2114 |
|
2108 | 2115 |
case 54:
|
2109 | |
#line 351 "parse.y" /* yacc.c:1646 */
|
|
2116 |
#line 351 "parse.y" /* yacc.c:1652 */
|
2110 | 2117 |
{ code1(_GT) ; }
|
2111 | |
#line 2113 "y.tab.c" /* yacc.c:1646 */
|
|
2118 |
#line 2120 "y.tab.c" /* yacc.c:1652 */
|
2112 | 2119 |
break;
|
2113 | 2120 |
|
2114 | 2121 |
case 55:
|
2115 | |
#line 352 "parse.y" /* yacc.c:1646 */
|
|
2122 |
#line 352 "parse.y" /* yacc.c:1652 */
|
2116 | 2123 |
{ code1(_GTE) ; }
|
2117 | |
#line 2119 "y.tab.c" /* yacc.c:1646 */
|
|
2124 |
#line 2126 "y.tab.c" /* yacc.c:1652 */
|
2118 | 2125 |
break;
|
2119 | 2126 |
|
2120 | 2127 |
case 56:
|
2121 | |
#line 355 "parse.y" /* yacc.c:1646 */
|
|
2128 |
#line 355 "parse.y" /* yacc.c:1652 */
|
2122 | 2129 |
{
|
2123 | 2130 |
INST *p3 = CDP((yyvsp[0].start)) ;
|
2124 | 2131 |
|
|
2144 | 2151 |
|
2145 | 2152 |
if ( !(yyvsp[-1].ival) ) code1(_NOT) ;
|
2146 | 2153 |
}
|
2147 | |
#line 2149 "y.tab.c" /* yacc.c:1646 */
|
|
2154 |
#line 2156 "y.tab.c" /* yacc.c:1652 */
|
2148 | 2155 |
break;
|
2149 | 2156 |
|
2150 | 2157 |
case 57:
|
2151 | |
#line 383 "parse.y" /* yacc.c:1646 */
|
|
2158 |
#line 383 "parse.y" /* yacc.c:1652 */
|
2152 | 2159 |
{ code1(_TEST) ;
|
2153 | 2160 |
mawk_code_jmp(MAWK, _LJNZ, (INST*)0) ;
|
2154 | 2161 |
}
|
2155 | |
#line 2157 "y.tab.c" /* yacc.c:1646 */
|
|
2162 |
#line 2164 "y.tab.c" /* yacc.c:1652 */
|
2156 | 2163 |
break;
|
2157 | 2164 |
|
2158 | 2165 |
case 58:
|
2159 | |
#line 387 "parse.y" /* yacc.c:1646 */
|
|
2166 |
#line 387 "parse.y" /* yacc.c:1652 */
|
2160 | 2167 |
{ code1(_TEST) ; mawk_patch_jmp(MAWK, mawk_code_ptr) ; }
|
2161 | |
#line 2163 "y.tab.c" /* yacc.c:1646 */
|
|
2168 |
#line 2170 "y.tab.c" /* yacc.c:1652 */
|
2162 | 2169 |
break;
|
2163 | 2170 |
|
2164 | 2171 |
case 59:
|
2165 | |
#line 390 "parse.y" /* yacc.c:1646 */
|
|
2172 |
#line 390 "parse.y" /* yacc.c:1652 */
|
2166 | 2173 |
{ code1(_TEST) ;
|
2167 | 2174 |
mawk_code_jmp(MAWK, _LJZ, (INST*)0) ;
|
2168 | 2175 |
}
|
2169 | |
#line 2171 "y.tab.c" /* yacc.c:1646 */
|
|
2176 |
#line 2178 "y.tab.c" /* yacc.c:1652 */
|
2170 | 2177 |
break;
|
2171 | 2178 |
|
2172 | 2179 |
case 60:
|
2173 | |
#line 394 "parse.y" /* yacc.c:1646 */
|
|
2180 |
#line 394 "parse.y" /* yacc.c:1652 */
|
2174 | 2181 |
{ code1(_TEST) ; mawk_patch_jmp(MAWK, mawk_code_ptr) ; }
|
2175 | |
#line 2177 "y.tab.c" /* yacc.c:1646 */
|
|
2182 |
#line 2184 "y.tab.c" /* yacc.c:1652 */
|
2176 | 2183 |
break;
|
2177 | 2184 |
|
2178 | 2185 |
case 61:
|
2179 | |
#line 396 "parse.y" /* yacc.c:1646 */
|
|
2186 |
#line 396 "parse.y" /* yacc.c:1652 */
|
2180 | 2187 |
{ mawk_code_jmp(MAWK, _JZ, (INST*)0) ; }
|
2181 | |
#line 2183 "y.tab.c" /* yacc.c:1646 */
|
|
2188 |
#line 2190 "y.tab.c" /* yacc.c:1652 */
|
2182 | 2189 |
break;
|
2183 | 2190 |
|
2184 | 2191 |
case 62:
|
2185 | |
#line 397 "parse.y" /* yacc.c:1646 */
|
|
2192 |
#line 397 "parse.y" /* yacc.c:1652 */
|
2186 | 2193 |
{ mawk_code_jmp(MAWK, _JMP, (INST*)0) ; }
|
2187 | |
#line 2189 "y.tab.c" /* yacc.c:1646 */
|
|
2194 |
#line 2196 "y.tab.c" /* yacc.c:1652 */
|
2188 | 2195 |
break;
|
2189 | 2196 |
|
2190 | 2197 |
case 63:
|
2191 | |
#line 399 "parse.y" /* yacc.c:1646 */
|
|
2198 |
#line 399 "parse.y" /* yacc.c:1652 */
|
2192 | 2199 |
{ mawk_patch_jmp(MAWK, mawk_code_ptr) ; mawk_patch_jmp(MAWK, CDP((yyvsp[0].start))) ; }
|
2193 | |
#line 2195 "y.tab.c" /* yacc.c:1646 */
|
|
2200 |
#line 2202 "y.tab.c" /* yacc.c:1652 */
|
2194 | 2201 |
break;
|
2195 | 2202 |
|
2196 | 2203 |
case 65:
|
2197 | |
#line 404 "parse.y" /* yacc.c:1646 */
|
|
2204 |
#line 404 "parse.y" /* yacc.c:1652 */
|
2198 | 2205 |
{ code1(_CAT) ; }
|
2199 | |
#line 2201 "y.tab.c" /* yacc.c:1646 */
|
|
2206 |
#line 2208 "y.tab.c" /* yacc.c:1652 */
|
2200 | 2207 |
break;
|
2201 | 2208 |
|
2202 | 2209 |
case 66:
|
2203 | |
#line 408 "parse.y" /* yacc.c:1646 */
|
|
2210 |
#line 408 "parse.y" /* yacc.c:1652 */
|
2204 | 2211 |
{ (yyval.start) = mawk_code_offset ; code2(MAWK, _PUSHD, (yyvsp[0].ptr)) ; }
|
2205 | |
#line 2207 "y.tab.c" /* yacc.c:1646 */
|
|
2212 |
#line 2214 "y.tab.c" /* yacc.c:1652 */
|
2206 | 2213 |
break;
|
2207 | 2214 |
|
2208 | 2215 |
case 67:
|
2209 | |
#line 410 "parse.y" /* yacc.c:1646 */
|
|
2216 |
#line 410 "parse.y" /* yacc.c:1652 */
|
2210 | 2217 |
{ (yyval.start) = mawk_code_offset ; code2(MAWK, _PUSHS, (yyvsp[0].ptr)) ; }
|
2211 | |
#line 2213 "y.tab.c" /* yacc.c:1646 */
|
|
2218 |
#line 2220 "y.tab.c" /* yacc.c:1652 */
|
2212 | 2219 |
break;
|
2213 | 2220 |
|
2214 | 2221 |
case 68:
|
2215 | |
#line 412 "parse.y" /* yacc.c:1646 */
|
|
2222 |
#line 412 "parse.y" /* yacc.c:1652 */
|
2216 | 2223 |
{ check_var(MAWK, (yyvsp[0].stp)) ;
|
2217 | 2224 |
(yyval.start) = mawk_code_offset ;
|
2218 | 2225 |
if ( is_local((yyvsp[0].stp)) )
|
2219 | 2226 |
{ mawk_code2op(MAWK, L_PUSHI, (yyvsp[0].stp)->offset) ; }
|
2220 | 2227 |
else code2(MAWK, _PUSHI, (yyvsp[0].stp)->stval.cp) ;
|
2221 | 2228 |
}
|
2222 | |
#line 2224 "y.tab.c" /* yacc.c:1646 */
|
|
2229 |
#line 2231 "y.tab.c" /* yacc.c:1652 */
|
2223 | 2230 |
break;
|
2224 | 2231 |
|
2225 | 2232 |
case 69:
|
2226 | |
#line 420 "parse.y" /* yacc.c:1646 */
|
|
2233 |
#line 420 "parse.y" /* yacc.c:1652 */
|
2227 | 2234 |
{ (yyval.start) = (yyvsp[-1].start) ; }
|
2228 | |
#line 2230 "y.tab.c" /* yacc.c:1646 */
|
|
2235 |
#line 2237 "y.tab.c" /* yacc.c:1652 */
|
2229 | 2236 |
break;
|
2230 | 2237 |
|
2231 | 2238 |
case 70:
|
2232 | |
#line 424 "parse.y" /* yacc.c:1646 */
|
|
2239 |
#line 424 "parse.y" /* yacc.c:1652 */
|
2233 | 2240 |
{ (yyval.start) = mawk_code_offset ; code2(MAWK, _MATCH0, (yyvsp[0].ptr)) ; }
|
2234 | |
#line 2236 "y.tab.c" /* yacc.c:1646 */
|
|
2241 |
#line 2243 "y.tab.c" /* yacc.c:1652 */
|
2235 | 2242 |
break;
|
2236 | 2243 |
|
2237 | 2244 |
case 71:
|
2238 | |
#line 427 "parse.y" /* yacc.c:1646 */
|
|
2245 |
#line 427 "parse.y" /* yacc.c:1652 */
|
2239 | 2246 |
{ code1(_ADD) ; }
|
2240 | |
#line 2242 "y.tab.c" /* yacc.c:1646 */
|
|
2247 |
#line 2249 "y.tab.c" /* yacc.c:1652 */
|
2241 | 2248 |
break;
|
2242 | 2249 |
|
2243 | 2250 |
case 72:
|
2244 | |
#line 428 "parse.y" /* yacc.c:1646 */
|
|
2251 |
#line 428 "parse.y" /* yacc.c:1652 */
|
2245 | 2252 |
{ code1(_SUB) ; }
|
2246 | |
#line 2248 "y.tab.c" /* yacc.c:1646 */
|
|
2253 |
#line 2255 "y.tab.c" /* yacc.c:1652 */
|
2247 | 2254 |
break;
|
2248 | 2255 |
|
2249 | 2256 |
case 73:
|
2250 | |
#line 429 "parse.y" /* yacc.c:1646 */
|
|
2257 |
#line 429 "parse.y" /* yacc.c:1652 */
|
2251 | 2258 |
{ code1(_MUL) ; }
|
2252 | |
#line 2254 "y.tab.c" /* yacc.c:1646 */
|
|
2259 |
#line 2261 "y.tab.c" /* yacc.c:1652 */
|
2253 | 2260 |
break;
|
2254 | 2261 |
|
2255 | 2262 |
case 74:
|
2256 | |
#line 430 "parse.y" /* yacc.c:1646 */
|
|
2263 |
#line 430 "parse.y" /* yacc.c:1652 */
|
2257 | 2264 |
{ code1(_DIV) ; }
|
2258 | |
#line 2260 "y.tab.c" /* yacc.c:1646 */
|
|
2265 |
#line 2267 "y.tab.c" /* yacc.c:1652 */
|
2259 | 2266 |
break;
|
2260 | 2267 |
|
2261 | 2268 |
case 75:
|
2262 | |
#line 431 "parse.y" /* yacc.c:1646 */
|
|
2269 |
#line 431 "parse.y" /* yacc.c:1652 */
|
2263 | 2270 |
{ code1(_MOD) ; }
|
2264 | |
#line 2266 "y.tab.c" /* yacc.c:1646 */
|
|
2271 |
#line 2273 "y.tab.c" /* yacc.c:1652 */
|
2265 | 2272 |
break;
|
2266 | 2273 |
|
2267 | 2274 |
case 76:
|
2268 | |
#line 432 "parse.y" /* yacc.c:1646 */
|
|
2275 |
#line 432 "parse.y" /* yacc.c:1652 */
|
2269 | 2276 |
{ code1(_POW) ; }
|
2270 | |
#line 2272 "y.tab.c" /* yacc.c:1646 */
|
|
2277 |
#line 2279 "y.tab.c" /* yacc.c:1652 */
|
2271 | 2278 |
break;
|
2272 | 2279 |
|
2273 | 2280 |
case 77:
|
2274 | |
#line 434 "parse.y" /* yacc.c:1646 */
|
|
2281 |
#line 434 "parse.y" /* yacc.c:1652 */
|
2275 | 2282 |
{ (yyval.start) = (yyvsp[0].start) ; code1(_NOT) ; }
|
2276 | |
#line 2278 "y.tab.c" /* yacc.c:1646 */
|
|
2283 |
#line 2285 "y.tab.c" /* yacc.c:1652 */
|
2277 | 2284 |
break;
|
2278 | 2285 |
|
2279 | 2286 |
case 78:
|
2280 | |
#line 436 "parse.y" /* yacc.c:1646 */
|
|
2287 |
#line 436 "parse.y" /* yacc.c:1652 */
|
2281 | 2288 |
{ (yyval.start) = (yyvsp[0].start) ; code1(_UPLUS) ; }
|
2282 | |
#line 2284 "y.tab.c" /* yacc.c:1646 */
|
|
2289 |
#line 2291 "y.tab.c" /* yacc.c:1652 */
|
2283 | 2290 |
break;
|
2284 | 2291 |
|
2285 | 2292 |
case 79:
|
2286 | |
#line 438 "parse.y" /* yacc.c:1646 */
|
|
2293 |
#line 438 "parse.y" /* yacc.c:1652 */
|
2287 | 2294 |
{ (yyval.start) = (yyvsp[0].start) ; code1(_UMINUS) ; }
|
2288 | |
#line 2290 "y.tab.c" /* yacc.c:1646 */
|
|
2295 |
#line 2297 "y.tab.c" /* yacc.c:1652 */
|
2289 | 2296 |
break;
|
2290 | 2297 |
|
2291 | 2298 |
case 81:
|
2292 | |
#line 443 "parse.y" /* yacc.c:1646 */
|
|
2299 |
#line 443 "parse.y" /* yacc.c:1652 */
|
2293 | 2300 |
{ check_var(MAWK, (yyvsp[-1].stp)) ;
|
2294 | 2301 |
(yyval.start) = mawk_code_offset ;
|
2295 | 2302 |
mawk_code_address((yyvsp[-1].stp)) ;
|
|
2297 | 2304 |
if ( (yyvsp[0].ival) == '+' ) code1(_POST_INC) ;
|
2298 | 2305 |
else code1(_POST_DEC) ;
|
2299 | 2306 |
}
|
2300 | |
#line 2302 "y.tab.c" /* yacc.c:1646 */
|
|
2307 |
#line 2309 "y.tab.c" /* yacc.c:1652 */
|
2301 | 2308 |
break;
|
2302 | 2309 |
|
2303 | 2310 |
case 82:
|
2304 | |
#line 451 "parse.y" /* yacc.c:1646 */
|
|
2311 |
#line 451 "parse.y" /* yacc.c:1652 */
|
2305 | 2312 |
{ (yyval.start) = (yyvsp[0].start) ;
|
2306 | 2313 |
if ( (yyvsp[-1].ival) == '+' ) code1(_PRE_INC) ;
|
2307 | 2314 |
else code1(_PRE_DEC) ;
|
2308 | 2315 |
}
|
2309 | |
#line 2311 "y.tab.c" /* yacc.c:1646 */
|
|
2316 |
#line 2318 "y.tab.c" /* yacc.c:1652 */
|
2310 | 2317 |
break;
|
2311 | 2318 |
|
2312 | 2319 |
case 83:
|
2313 | |
#line 456 "parse.y" /* yacc.c:1646 */
|
|
2320 |
#line 456 "parse.y" /* yacc.c:1652 */
|
2314 | 2321 |
{ (yyval.start) = (yyvsp[0].start) ;
|
2315 | 2322 |
if ( (yyvsp[-1].ival) == '+' ) code1(_PRE_INC_ARR) ;
|
2316 | 2323 |
else code1(_PRE_DEC_ARR) ;
|
2317 | 2324 |
}
|
2318 | |
#line 2320 "y.tab.c" /* yacc.c:1646 */
|
|
2325 |
#line 2327 "y.tab.c" /* yacc.c:1652 */
|
2319 | 2326 |
break;
|
2320 | 2327 |
|
2321 | 2328 |
case 84:
|
2322 | |
#line 463 "parse.y" /* yacc.c:1646 */
|
|
2329 |
#line 463 "parse.y" /* yacc.c:1652 */
|
2323 | 2330 |
{ if ((yyvsp[0].ival) == '+' ) code1(F_POST_INC ) ;
|
2324 | 2331 |
else code1(F_POST_DEC) ;
|
2325 | 2332 |
}
|
2326 | |
#line 2328 "y.tab.c" /* yacc.c:1646 */
|
|
2333 |
#line 2335 "y.tab.c" /* yacc.c:1652 */
|
2327 | 2334 |
break;
|
2328 | 2335 |
|
2329 | 2336 |
case 85:
|
2330 | |
#line 467 "parse.y" /* yacc.c:1646 */
|
|
2337 |
#line 467 "parse.y" /* yacc.c:1652 */
|
2331 | 2338 |
{ (yyval.start) = (yyvsp[0].start) ;
|
2332 | 2339 |
if ( (yyvsp[-1].ival) == '+' ) code1(F_PRE_INC) ;
|
2333 | 2340 |
else code1( F_PRE_DEC) ;
|
2334 | 2341 |
}
|
2335 | |
#line 2337 "y.tab.c" /* yacc.c:1646 */
|
|
2342 |
#line 2344 "y.tab.c" /* yacc.c:1652 */
|
2336 | 2343 |
break;
|
2337 | 2344 |
|
2338 | 2345 |
case 86:
|
2339 | |
#line 474 "parse.y" /* yacc.c:1646 */
|
|
2346 |
#line 474 "parse.y" /* yacc.c:1652 */
|
2340 | 2347 |
{ (yyval.start) = mawk_code_offset ;
|
2341 | 2348 |
check_var(MAWK, (yyvsp[0].stp)) ;
|
2342 | 2349 |
mawk_code_address((yyvsp[0].stp)) ;
|
2343 | 2350 |
}
|
2344 | |
#line 2346 "y.tab.c" /* yacc.c:1646 */
|
|
2351 |
#line 2353 "y.tab.c" /* yacc.c:1652 */
|
2345 | 2352 |
break;
|
2346 | 2353 |
|
2347 | 2354 |
case 87:
|
2348 | |
#line 482 "parse.y" /* yacc.c:1646 */
|
|
2355 |
#line 482 "parse.y" /* yacc.c:1652 */
|
2349 | 2356 |
{ (yyval.ival) = 0 ; }
|
2350 | |
#line 2352 "y.tab.c" /* yacc.c:1646 */
|
|
2357 |
#line 2359 "y.tab.c" /* yacc.c:1652 */
|
2351 | 2358 |
break;
|
2352 | 2359 |
|
2353 | 2360 |
case 89:
|
2354 | |
#line 487 "parse.y" /* yacc.c:1646 */
|
|
2361 |
#line 487 "parse.y" /* yacc.c:1652 */
|
2355 | 2362 |
{ (yyval.ival) = 1 ; }
|
2356 | |
#line 2358 "y.tab.c" /* yacc.c:1646 */
|
|
2363 |
#line 2365 "y.tab.c" /* yacc.c:1652 */
|
2357 | 2364 |
break;
|
2358 | 2365 |
|
2359 | 2366 |
case 90:
|
2360 | |
#line 489 "parse.y" /* yacc.c:1646 */
|
|
2367 |
#line 489 "parse.y" /* yacc.c:1652 */
|
2361 | 2368 |
{ (yyval.ival) = (yyvsp[-2].ival) + 1 ; }
|
2362 | |
#line 2364 "y.tab.c" /* yacc.c:1646 */
|
|
2369 |
#line 2371 "y.tab.c" /* yacc.c:1652 */
|
2363 | 2370 |
break;
|
2364 | 2371 |
|
2365 | 2372 |
case 91:
|
2366 | |
#line 494 "parse.y" /* yacc.c:1646 */
|
|
2373 |
#line 494 "parse.y" /* yacc.c:1652 */
|
2367 | 2374 |
{ const BI_REC *p = (yyvsp[-4].bip) ;
|
2368 | 2375 |
(yyval.start) = (yyvsp[-3].start) ;
|
2369 | 2376 |
if ( (int)p->min_args > (yyvsp[-1].ival) || (int)p->max_args < (yyvsp[-1].ival) )
|
|
2374 | 2381 |
{ code1(_PUSHINT) ; code1((yyvsp[-1].ival)) ; }
|
2375 | 2382 |
code2(MAWK, _BUILTIN , mawk_f2d(p->fp)) ;
|
2376 | 2383 |
}
|
2377 | |
#line 2379 "y.tab.c" /* yacc.c:1646 */
|
|
2384 |
#line 2386 "y.tab.c" /* yacc.c:1652 */
|
2378 | 2385 |
break;
|
2379 | 2386 |
|
2380 | 2387 |
case 92:
|
2381 | |
#line 505 "parse.y" /* yacc.c:1646 */
|
|
2388 |
#line 505 "parse.y" /* yacc.c:1652 */
|
2382 | 2389 |
{
|
2383 | 2390 |
(yyval.start) = mawk_code_offset ;
|
2384 | 2391 |
code1(_PUSHINT) ; code1(0) ;
|
2385 | 2392 |
code2(MAWK, _BUILTIN, mawk_f2d((yyvsp[0].bip)->fp)) ;
|
2386 | 2393 |
}
|
2387 | |
#line 2389 "y.tab.c" /* yacc.c:1646 */
|
|
2394 |
#line 2396 "y.tab.c" /* yacc.c:1652 */
|
2388 | 2395 |
break;
|
2389 | 2396 |
|
2390 | 2397 |
case 93:
|
2391 | |
#line 514 "parse.y" /* yacc.c:1646 */
|
|
2398 |
#line 514 "parse.y" /* yacc.c:1652 */
|
2392 | 2399 |
{ (yyval.start) = mawk_code_offset ; }
|
2393 | |
#line 2395 "y.tab.c" /* yacc.c:1646 */
|
|
2400 |
#line 2402 "y.tab.c" /* yacc.c:1652 */
|
2394 | 2401 |
break;
|
2395 | 2402 |
|
2396 | 2403 |
case 94:
|
2397 | |
#line 518 "parse.y" /* yacc.c:1646 */
|
|
2404 |
#line 518 "parse.y" /* yacc.c:1652 */
|
2398 | 2405 |
{ code2(MAWK, _PRINT, mawk_f2d((yyvsp[-4].fp))) ;
|
2399 | 2406 |
if ( (yyvsp[-4].fp) == mawk_bi_printf && (yyvsp[-2].ival) == 0 )
|
2400 | 2407 |
mawk_compile_error(MAWK, "no arguments in call to printf") ;
|
2401 | 2408 |
MAWK->print_flag = 0 ;
|
2402 | 2409 |
(yyval.start) = (yyvsp[-3].start) ;
|
2403 | 2410 |
}
|
2404 | |
#line 2406 "y.tab.c" /* yacc.c:1646 */
|
|
2411 |
#line 2413 "y.tab.c" /* yacc.c:1652 */
|
2405 | 2412 |
break;
|
2406 | 2413 |
|
2407 | 2414 |
case 95:
|
2408 | |
#line 526 "parse.y" /* yacc.c:1646 */
|
|
2415 |
#line 526 "parse.y" /* yacc.c:1652 */
|
2409 | 2416 |
{ (yyval.fp) = mawk_bi_print ; MAWK->print_flag = 1 ;}
|
2410 | |
#line 2412 "y.tab.c" /* yacc.c:1646 */
|
|
2417 |
#line 2419 "y.tab.c" /* yacc.c:1652 */
|
2411 | 2418 |
break;
|
2412 | 2419 |
|
2413 | 2420 |
case 96:
|
2414 | |
#line 527 "parse.y" /* yacc.c:1646 */
|
|
2421 |
#line 527 "parse.y" /* yacc.c:1652 */
|
2415 | 2422 |
{ (yyval.fp) = mawk_bi_printf ; MAWK->print_flag = 1 ; }
|
2416 | |
#line 2418 "y.tab.c" /* yacc.c:1646 */
|
|
2423 |
#line 2425 "y.tab.c" /* yacc.c:1652 */
|
2417 | 2424 |
break;
|
2418 | 2425 |
|
2419 | 2426 |
case 97:
|
2420 | |
#line 530 "parse.y" /* yacc.c:1646 */
|
|
2427 |
#line 530 "parse.y" /* yacc.c:1652 */
|
2421 | 2428 |
{ mawk_code2op(MAWK, _PUSHINT, (yyvsp[0].ival)) ; }
|
2422 | |
#line 2424 "y.tab.c" /* yacc.c:1646 */
|
|
2429 |
#line 2431 "y.tab.c" /* yacc.c:1652 */
|
2423 | 2430 |
break;
|
2424 | 2431 |
|
2425 | 2432 |
case 98:
|
2426 | |
#line 532 "parse.y" /* yacc.c:1646 */
|
|
2433 |
#line 532 "parse.y" /* yacc.c:1652 */
|
2427 | 2434 |
{ (yyval.ival) = (yyvsp[-1].arg2p)->cnt ; mawk_zfree(MAWK, (yyvsp[-1].arg2p),sizeof(ARG2_REC)) ;
|
2428 | 2435 |
mawk_code2op(MAWK, _PUSHINT, (yyval.ival)) ;
|
2429 | 2436 |
}
|
2430 | |
#line 2432 "y.tab.c" /* yacc.c:1646 */
|
|
2437 |
#line 2439 "y.tab.c" /* yacc.c:1652 */
|
2431 | 2438 |
break;
|
2432 | 2439 |
|
2433 | 2440 |
case 99:
|
2434 | |
#line 536 "parse.y" /* yacc.c:1646 */
|
|
2441 |
#line 536 "parse.y" /* yacc.c:1652 */
|
2435 | 2442 |
{ (yyval.ival)=0 ; mawk_code2op(MAWK, _PUSHINT, 0) ; }
|
2436 | |
#line 2438 "y.tab.c" /* yacc.c:1646 */
|
|
2443 |
#line 2445 "y.tab.c" /* yacc.c:1652 */
|
2437 | 2444 |
break;
|
2438 | 2445 |
|
2439 | 2446 |
case 100:
|
2440 | |
#line 540 "parse.y" /* yacc.c:1646 */
|
|
2447 |
#line 540 "parse.y" /* yacc.c:1652 */
|
2441 | 2448 |
{ (yyval.arg2p) = (ARG2_REC*) mawk_zmalloc(MAWK, sizeof(ARG2_REC)) ;
|
2442 | 2449 |
(yyval.arg2p)->start = (yyvsp[-2].start) ;
|
2443 | 2450 |
(yyval.arg2p)->cnt = 2 ;
|
2444 | 2451 |
}
|
2445 | |
#line 2447 "y.tab.c" /* yacc.c:1646 */
|
|
2452 |
#line 2454 "y.tab.c" /* yacc.c:1652 */
|
2446 | 2453 |
break;
|
2447 | 2454 |
|
2448 | 2455 |
case 101:
|
2449 | |
#line 545 "parse.y" /* yacc.c:1646 */
|
|
2456 |
#line 545 "parse.y" /* yacc.c:1652 */
|
2450 | 2457 |
{ (yyval.arg2p) = (yyvsp[-2].arg2p) ; (yyval.arg2p)->cnt++ ; }
|
2451 | |
#line 2453 "y.tab.c" /* yacc.c:1646 */
|
|
2458 |
#line 2460 "y.tab.c" /* yacc.c:1652 */
|
2452 | 2459 |
break;
|
2453 | 2460 |
|
2454 | 2461 |
case 103:
|
2455 | |
#line 550 "parse.y" /* yacc.c:1646 */
|
|
2462 |
#line 550 "parse.y" /* yacc.c:1652 */
|
2456 | 2463 |
{ mawk_code2op(MAWK, _PUSHINT, (yyvsp[-1].ival)) ; }
|
2457 | |
#line 2459 "y.tab.c" /* yacc.c:1646 */
|
|
2464 |
#line 2466 "y.tab.c" /* yacc.c:1652 */
|
2458 | 2465 |
break;
|
2459 | 2466 |
|
2460 | 2467 |
case 104:
|
2461 | |
#line 557 "parse.y" /* yacc.c:1646 */
|
|
2468 |
#line 557 "parse.y" /* yacc.c:1652 */
|
2462 | 2469 |
{ (yyval.start) = (yyvsp[-1].start) ; mawk_eat_nl(MAWK, &yylval) ; mawk_code_jmp(MAWK, _JZ, (INST*)0) ; }
|
2463 | |
#line 2465 "y.tab.c" /* yacc.c:1646 */
|
|
2470 |
#line 2472 "y.tab.c" /* yacc.c:1652 */
|
2464 | 2471 |
break;
|
2465 | 2472 |
|
2466 | 2473 |
case 105:
|
2467 | |
#line 562 "parse.y" /* yacc.c:1646 */
|
|
2474 |
#line 562 "parse.y" /* yacc.c:1652 */
|
2468 | 2475 |
{ mawk_patch_jmp(MAWK, mawk_code_ptr ) ; }
|
2469 | |
#line 2471 "y.tab.c" /* yacc.c:1646 */
|
|
2476 |
#line 2478 "y.tab.c" /* yacc.c:1652 */
|
2470 | 2477 |
break;
|
2471 | 2478 |
|
2472 | 2479 |
case 106:
|
2473 | |
#line 565 "parse.y" /* yacc.c:1646 */
|
|
2480 |
#line 565 "parse.y" /* yacc.c:1652 */
|
2474 | 2481 |
{ mawk_eat_nl(MAWK, &yylval) ; mawk_code_jmp(MAWK, _JMP, (INST*)0) ; }
|
2475 | |
#line 2477 "y.tab.c" /* yacc.c:1646 */
|
|
2482 |
#line 2484 "y.tab.c" /* yacc.c:1652 */
|
2476 | 2483 |
break;
|
2477 | 2484 |
|
2478 | 2485 |
case 107:
|
2479 | |
#line 570 "parse.y" /* yacc.c:1646 */
|
|
2486 |
#line 570 "parse.y" /* yacc.c:1652 */
|
2480 | 2487 |
{ mawk_patch_jmp(MAWK, mawk_code_ptr) ;
|
2481 | 2488 |
mawk_patch_jmp(MAWK, CDP((yyvsp[0].start))) ;
|
2482 | 2489 |
}
|
2483 | |
#line 2485 "y.tab.c" /* yacc.c:1646 */
|
|
2490 |
#line 2492 "y.tab.c" /* yacc.c:1652 */
|
2484 | 2491 |
break;
|
2485 | 2492 |
|
2486 | 2493 |
case 108:
|
2487 | |
#line 578 "parse.y" /* yacc.c:1646 */
|
|
2494 |
#line 578 "parse.y" /* yacc.c:1652 */
|
2488 | 2495 |
{ mawk_eat_nl(MAWK, &yylval) ; mawk_BC_new(MAWK) ; }
|
2489 | |
#line 2491 "y.tab.c" /* yacc.c:1646 */
|
|
2496 |
#line 2498 "y.tab.c" /* yacc.c:1652 */
|
2490 | 2497 |
break;
|
2491 | 2498 |
|
2492 | 2499 |
case 109:
|
2493 | |
#line 583 "parse.y" /* yacc.c:1646 */
|
|
2500 |
#line 583 "parse.y" /* yacc.c:1652 */
|
2494 | 2501 |
{ (yyval.start) = (yyvsp[-5].start) ;
|
2495 | 2502 |
mawk_code_jmp(MAWK, _JNZ, CDP((yyvsp[-5].start))) ;
|
2496 | 2503 |
mawk_BC_clear(MAWK, mawk_code_ptr, CDP((yyvsp[-2].start))) ; }
|
2497 | |
#line 2499 "y.tab.c" /* yacc.c:1646 */
|
|
2504 |
#line 2506 "y.tab.c" /* yacc.c:1652 */
|
2498 | 2505 |
break;
|
2499 | 2506 |
|
2500 | 2507 |
case 110:
|
2501 | |
#line 589 "parse.y" /* yacc.c:1646 */
|
|
2508 |
#line 589 "parse.y" /* yacc.c:1652 */
|
2502 | 2509 |
{ mawk_eat_nl(MAWK, &yylval) ; mawk_BC_new(MAWK) ;
|
2503 | 2510 |
(yyval.start) = (yyvsp[-1].start) ;
|
2504 | 2511 |
|
|
2515 | 2522 |
code2(MAWK, _JMP, (INST*)0) ; /* code2() not mawk_code_jmp() */
|
2516 | 2523 |
}
|
2517 | 2524 |
}
|
2518 | |
#line 2520 "y.tab.c" /* yacc.c:1646 */
|
|
2525 |
#line 2527 "y.tab.c" /* yacc.c:1652 */
|
2519 | 2526 |
break;
|
2520 | 2527 |
|
2521 | 2528 |
case 111:
|
2522 | |
#line 609 "parse.y" /* yacc.c:1646 */
|
|
2529 |
#line 609 "parse.y" /* yacc.c:1652 */
|
2523 | 2530 |
{
|
2524 | 2531 |
int saved_offset ;
|
2525 | 2532 |
int len ;
|
|
2541 | 2548 |
mawk_BC_clear(MAWK, mawk_code_ptr, CDP((yyvsp[0].start))) ;
|
2542 | 2549 |
}
|
2543 | 2550 |
}
|
2544 | |
#line 2546 "y.tab.c" /* yacc.c:1646 */
|
|
2551 |
#line 2553 "y.tab.c" /* yacc.c:1652 */
|
2545 | 2552 |
break;
|
2546 | 2553 |
|
2547 | 2554 |
case 112:
|
2548 | |
#line 635 "parse.y" /* yacc.c:1646 */
|
|
2555 |
#line 635 "parse.y" /* yacc.c:1652 */
|
2549 | 2556 |
{
|
2550 | 2557 |
int cont_offset = mawk_code_offset ;
|
2551 | 2558 |
unsigned len = mawk_code_pop(MAWK, mawk_code_ptr) ;
|
|
2567 | 2574 |
mawk_BC_clear(MAWK, mawk_code_ptr, CDP(cont_offset)) ;
|
2568 | 2575 |
|
2569 | 2576 |
}
|
2570 | |
#line 2572 "y.tab.c" /* yacc.c:1646 */
|
|
2577 |
#line 2579 "y.tab.c" /* yacc.c:1652 */
|
2571 | 2578 |
break;
|
2572 | 2579 |
|
2573 | 2580 |
case 113:
|
2574 | |
#line 658 "parse.y" /* yacc.c:1646 */
|
|
2581 |
#line 658 "parse.y" /* yacc.c:1652 */
|
2575 | 2582 |
{ (yyval.start) = mawk_code_offset ; }
|
2576 | |
#line 2578 "y.tab.c" /* yacc.c:1646 */
|
|
2583 |
#line 2585 "y.tab.c" /* yacc.c:1652 */
|
2577 | 2584 |
break;
|
2578 | 2585 |
|
2579 | 2586 |
case 114:
|
2580 | |
#line 660 "parse.y" /* yacc.c:1646 */
|
|
2587 |
#line 660 "parse.y" /* yacc.c:1652 */
|
2581 | 2588 |
{ (yyval.start) = (yyvsp[-1].start) ; code1(_POP) ; }
|
2582 | |
#line 2584 "y.tab.c" /* yacc.c:1646 */
|
|
2589 |
#line 2591 "y.tab.c" /* yacc.c:1652 */
|
2583 | 2590 |
break;
|
2584 | 2591 |
|
2585 | 2592 |
case 115:
|
2586 | |
#line 663 "parse.y" /* yacc.c:1646 */
|
|
2593 |
#line 663 "parse.y" /* yacc.c:1652 */
|
2587 | 2594 |
{ (yyval.start) = mawk_code_offset ; }
|
2588 | |
#line 2590 "y.tab.c" /* yacc.c:1646 */
|
|
2595 |
#line 2597 "y.tab.c" /* yacc.c:1652 */
|
2589 | 2596 |
break;
|
2590 | 2597 |
|
2591 | 2598 |
case 116:
|
2592 | |
#line 665 "parse.y" /* yacc.c:1646 */
|
|
2599 |
#line 665 "parse.y" /* yacc.c:1652 */
|
2593 | 2600 |
{
|
2594 | 2601 |
if ( mawk_code_ptr - 2 == CDP((yyvsp[-1].start)) &&
|
2595 | 2602 |
mawk_code_ptr[-2].op == _PUSHD &&
|
|
2604 | 2611 |
code2(MAWK, _JMP, (INST*)0) ;
|
2605 | 2612 |
}
|
2606 | 2613 |
}
|
2607 | |
#line 2609 "y.tab.c" /* yacc.c:1646 */
|
|
2614 |
#line 2616 "y.tab.c" /* yacc.c:1652 */
|
2608 | 2615 |
break;
|
2609 | 2616 |
|
2610 | 2617 |
case 117:
|
2611 | |
#line 682 "parse.y" /* yacc.c:1646 */
|
|
2618 |
#line 682 "parse.y" /* yacc.c:1652 */
|
2612 | 2619 |
{ mawk_eat_nl(MAWK, &yylval) ; mawk_BC_new(MAWK) ;
|
2613 | 2620 |
mawk_code_push(MAWK, (INST*)0,0, MAWK->scope, MAWK->active_funct) ;
|
2614 | 2621 |
}
|
2615 | |
#line 2617 "y.tab.c" /* yacc.c:1646 */
|
|
2622 |
#line 2624 "y.tab.c" /* yacc.c:1652 */
|
2616 | 2623 |
break;
|
2617 | 2624 |
|
2618 | 2625 |
case 118:
|
2619 | |
#line 686 "parse.y" /* yacc.c:1646 */
|
|
2626 |
#line 686 "parse.y" /* yacc.c:1652 */
|
2620 | 2627 |
{ INST *p1 = CDP((yyvsp[-1].start)) ;
|
2621 | 2628 |
|
2622 | 2629 |
mawk_eat_nl(MAWK, &yylval) ; mawk_BC_new(MAWK) ;
|
|
2624 | 2631 |
mawk_code_push(MAWK, p1, mawk_code_ptr - p1, MAWK->scope, MAWK->active_funct) ;
|
2625 | 2632 |
mawk_code_ptr -= mawk_code_ptr - p1 ;
|
2626 | 2633 |
}
|
2627 | |
#line 2629 "y.tab.c" /* yacc.c:1646 */
|
|
2634 |
#line 2636 "y.tab.c" /* yacc.c:1652 */
|
2628 | 2635 |
break;
|
2629 | 2636 |
|
2630 | 2637 |
case 119:
|
2631 | |
#line 699 "parse.y" /* yacc.c:1646 */
|
|
2638 |
#line 699 "parse.y" /* yacc.c:1652 */
|
2632 | 2639 |
{ check_array(MAWK, (yyvsp[0].stp)) ;
|
2633 | 2640 |
mawk_code_array(MAWK, (yyvsp[0].stp)) ;
|
2634 | 2641 |
code1(A_TEST) ;
|
2635 | 2642 |
}
|
2636 | |
#line 2638 "y.tab.c" /* yacc.c:1646 */
|
|
2643 |
#line 2645 "y.tab.c" /* yacc.c:1652 */
|
2637 | 2644 |
break;
|
2638 | 2645 |
|
2639 | 2646 |
case 120:
|
2640 | |
#line 704 "parse.y" /* yacc.c:1646 */
|
|
2647 |
#line 704 "parse.y" /* yacc.c:1652 */
|
2641 | 2648 |
{ (yyval.start) = (yyvsp[-3].arg2p)->start ;
|
2642 | 2649 |
mawk_code2op(MAWK, A_CAT, (yyvsp[-3].arg2p)->cnt) ;
|
2643 | 2650 |
mawk_zfree(MAWK, (yyvsp[-3].arg2p), sizeof(ARG2_REC)) ;
|
|
2646 | 2653 |
mawk_code_array(MAWK, (yyvsp[0].stp)) ;
|
2647 | 2654 |
code1(A_TEST) ;
|
2648 | 2655 |
}
|
2649 | |
#line 2651 "y.tab.c" /* yacc.c:1646 */
|
|
2656 |
#line 2658 "y.tab.c" /* yacc.c:1652 */
|
2650 | 2657 |
break;
|
2651 | 2658 |
|
2652 | 2659 |
case 121:
|
2653 | |
#line 717 "parse.y" /* yacc.c:1646 */
|
|
2660 |
#line 717 "parse.y" /* yacc.c:1652 */
|
2654 | 2661 |
{
|
2655 | 2662 |
if ( (yyvsp[-1].ival) > 1 )
|
2656 | 2663 |
{ mawk_code2op(MAWK, A_CAT, (yyvsp[-1].ival)) ; }
|
|
2661 | 2668 |
else code2(MAWK, AE_PUSHA, (yyvsp[-4].stp)->stval.array) ;
|
2662 | 2669 |
(yyval.start) = (yyvsp[-3].start) ;
|
2663 | 2670 |
}
|
2664 | |
#line 2666 "y.tab.c" /* yacc.c:1646 */
|
|
2671 |
#line 2673 "y.tab.c" /* yacc.c:1652 */
|
2665 | 2672 |
break;
|
2666 | 2673 |
|
2667 | 2674 |
case 122:
|
2668 | |
#line 730 "parse.y" /* yacc.c:1646 */
|
|
2675 |
#line 730 "parse.y" /* yacc.c:1652 */
|
2669 | 2676 |
{
|
2670 | 2677 |
if ( (yyvsp[-1].ival) > 1 )
|
2671 | 2678 |
{ mawk_code2op(MAWK, A_CAT, (yyvsp[-1].ival)) ; }
|
|
2676 | 2683 |
else code2(MAWK, AE_PUSHA_WRARR, (yyvsp[-4].stp)->stval.array) ;
|
2677 | 2684 |
(yyval.start) = (yyvsp[-3].start) ;
|
2678 | 2685 |
}
|
2679 | |
#line 2681 "y.tab.c" /* yacc.c:1646 */
|
|
2686 |
#line 2688 "y.tab.c" /* yacc.c:1652 */
|
2680 | 2687 |
break;
|
2681 | 2688 |
|
2682 | 2689 |
case 123:
|
2683 | |
#line 743 "parse.y" /* yacc.c:1646 */
|
|
2690 |
#line 743 "parse.y" /* yacc.c:1652 */
|
2684 | 2691 |
{
|
2685 | 2692 |
if ( (yyvsp[-1].ival) > 1 )
|
2686 | 2693 |
{ mawk_code2op(MAWK, A_CAT, (yyvsp[-1].ival)) ; }
|
|
2691 | 2698 |
else code2(MAWK, AE_PUSHI, (yyvsp[-4].stp)->stval.array) ;
|
2692 | 2699 |
(yyval.start) = (yyvsp[-3].start) ;
|
2693 | 2700 |
}
|
2694 | |
#line 2696 "y.tab.c" /* yacc.c:1646 */
|
|
2701 |
#line 2703 "y.tab.c" /* yacc.c:1652 */
|
2695 | 2702 |
break;
|
2696 | 2703 |
|
2697 | 2704 |
case 124:
|
2698 | |
#line 755 "parse.y" /* yacc.c:1646 */
|
|
2705 |
#line 755 "parse.y" /* yacc.c:1652 */
|
2699 | 2706 |
{
|
2700 | 2707 |
if ( (yyvsp[-2].ival) > 1 )
|
2701 | 2708 |
{ mawk_code2op(MAWK, A_CAT,(yyvsp[-2].ival)) ; }
|
|
2709 | 2716 |
|
2710 | 2717 |
(yyval.start) = (yyvsp[-4].start) ;
|
2711 | 2718 |
}
|
2712 | |
#line 2714 "y.tab.c" /* yacc.c:1646 */
|
|
2719 |
#line 2721 "y.tab.c" /* yacc.c:1652 */
|
2713 | 2720 |
break;
|
2714 | 2721 |
|
2715 | 2722 |
case 125:
|
2716 | |
#line 772 "parse.y" /* yacc.c:1646 */
|
|
2723 |
#line 772 "parse.y" /* yacc.c:1652 */
|
2717 | 2724 |
{
|
2718 | 2725 |
(yyval.start) = (yyvsp[-4].start) ;
|
2719 | 2726 |
if ( (yyvsp[-2].ival) > 1 ) { mawk_code2op(MAWK, A_CAT, (yyvsp[-2].ival)) ; }
|
|
2721 | 2728 |
mawk_code_array(MAWK, (yyvsp[-5].stp)) ;
|
2722 | 2729 |
code1(A_DEL) ;
|
2723 | 2730 |
}
|
2724 | |
#line 2726 "y.tab.c" /* yacc.c:1646 */
|
|
2731 |
#line 2733 "y.tab.c" /* yacc.c:1652 */
|
2725 | 2732 |
break;
|
2726 | 2733 |
|
2727 | 2734 |
case 126:
|
2728 | |
#line 780 "parse.y" /* yacc.c:1646 */
|
|
2735 |
#line 780 "parse.y" /* yacc.c:1652 */
|
2729 | 2736 |
{
|
2730 | 2737 |
(yyval.start) = mawk_code_offset ;
|
2731 | 2738 |
check_array(MAWK, (yyvsp[-1].stp)) ;
|
2732 | 2739 |
mawk_code_array(MAWK, (yyvsp[-1].stp)) ;
|
2733 | 2740 |
code1(DEL_A) ;
|
2734 | 2741 |
}
|
2735 | |
#line 2737 "y.tab.c" /* yacc.c:1646 */
|
|
2742 |
#line 2744 "y.tab.c" /* yacc.c:1652 */
|
2736 | 2743 |
break;
|
2737 | 2744 |
|
2738 | 2745 |
case 127:
|
2739 | |
#line 791 "parse.y" /* yacc.c:1646 */
|
|
2746 |
#line 791 "parse.y" /* yacc.c:1652 */
|
2740 | 2747 |
{ mawk_eat_nl(MAWK, &yylval) ; mawk_BC_new(MAWK) ;
|
2741 | 2748 |
(yyval.start) = mawk_code_offset ;
|
2742 | 2749 |
|
|
2747 | 2754 |
|
2748 | 2755 |
code2(MAWK, SET_ALOOP, (INST*)0) ;
|
2749 | 2756 |
}
|
2750 | |
#line 2752 "y.tab.c" /* yacc.c:1646 */
|
|
2757 |
#line 2759 "y.tab.c" /* yacc.c:1652 */
|
2751 | 2758 |
break;
|
2752 | 2759 |
|
2753 | 2760 |
case 128:
|
2754 | |
#line 805 "parse.y" /* yacc.c:1646 */
|
|
2761 |
#line 805 "parse.y" /* yacc.c:1652 */
|
2755 | 2762 |
{
|
2756 | 2763 |
INST *p2 = CDP((yyvsp[0].start)) ;
|
2757 | 2764 |
|
|
2760 | 2767 |
mawk_code_jmp(MAWK, ALOOP, p2) ;
|
2761 | 2768 |
code1(POP_AL) ;
|
2762 | 2769 |
}
|
2763 | |
#line 2765 "y.tab.c" /* yacc.c:1646 */
|
|
2770 |
#line 2772 "y.tab.c" /* yacc.c:1652 */
|
2764 | 2771 |
break;
|
2765 | 2772 |
|
2766 | 2773 |
case 129:
|
2767 | |
#line 822 "parse.y" /* yacc.c:1646 */
|
|
2774 |
#line 822 "parse.y" /* yacc.c:1652 */
|
2768 | 2775 |
{ (yyval.start) = mawk_code_offset ; code2(MAWK, F_PUSHA, (yyvsp[0].cp)) ; }
|
2769 | |
#line 2771 "y.tab.c" /* yacc.c:1646 */
|
|
2776 |
#line 2778 "y.tab.c" /* yacc.c:1652 */
|
2770 | 2777 |
break;
|
2771 | 2778 |
|
2772 | 2779 |
case 130:
|
2773 | |
#line 824 "parse.y" /* yacc.c:1646 */
|
|
2780 |
#line 824 "parse.y" /* yacc.c:1652 */
|
2774 | 2781 |
{ check_var(MAWK, (yyvsp[0].stp)) ;
|
2775 | 2782 |
(yyval.start) = mawk_code_offset ;
|
2776 | 2783 |
if ( is_local((yyvsp[0].stp)) )
|
|
2779 | 2786 |
|
2780 | 2787 |
CODE_FE_PUSHA() ;
|
2781 | 2788 |
}
|
2782 | |
#line 2784 "y.tab.c" /* yacc.c:1646 */
|
|
2789 |
#line 2791 "y.tab.c" /* yacc.c:1652 */
|
2783 | 2790 |
break;
|
2784 | 2791 |
|
2785 | 2792 |
case 131:
|
2786 | |
#line 833 "parse.y" /* yacc.c:1646 */
|
|
2793 |
#line 833 "parse.y" /* yacc.c:1652 */
|
2787 | 2794 |
{
|
2788 | 2795 |
if ( (yyvsp[-1].ival) > 1 )
|
2789 | 2796 |
{ mawk_code2op(MAWK, A_CAT, (yyvsp[-1].ival)) ; }
|
|
2797 | 2804 |
|
2798 | 2805 |
(yyval.start) = (yyvsp[-3].start) ;
|
2799 | 2806 |
}
|
2800 | |
#line 2802 "y.tab.c" /* yacc.c:1646 */
|
|
2807 |
#line 2809 "y.tab.c" /* yacc.c:1652 */
|
2801 | 2808 |
break;
|
2802 | 2809 |
|
2803 | 2810 |
case 132:
|
2804 | |
#line 847 "parse.y" /* yacc.c:1646 */
|
|
2811 |
#line 847 "parse.y" /* yacc.c:1652 */
|
2805 | 2812 |
{ (yyval.start) = (yyvsp[0].start) ; CODE_FE_PUSHA() ; }
|
2806 | |
#line 2808 "y.tab.c" /* yacc.c:1646 */
|
|
2813 |
#line 2815 "y.tab.c" /* yacc.c:1652 */
|
2807 | 2814 |
break;
|
2808 | 2815 |
|
2809 | 2816 |
case 133:
|
2810 | |
#line 849 "parse.y" /* yacc.c:1646 */
|
|
2817 |
#line 849 "parse.y" /* yacc.c:1652 */
|
2811 | 2818 |
{ (yyval.start) = (yyvsp[-1].start) ; }
|
2812 | |
#line 2814 "y.tab.c" /* yacc.c:1646 */
|
|
2819 |
#line 2821 "y.tab.c" /* yacc.c:1652 */
|
2813 | 2820 |
break;
|
2814 | 2821 |
|
2815 | 2822 |
case 134:
|
2816 | |
#line 853 "parse.y" /* yacc.c:1646 */
|
|
2823 |
#line 853 "parse.y" /* yacc.c:1652 */
|
2817 | 2824 |
{ field_A2I(MAWK) ; }
|
2818 | |
#line 2820 "y.tab.c" /* yacc.c:1646 */
|
|
2825 |
#line 2827 "y.tab.c" /* yacc.c:1652 */
|
2819 | 2826 |
break;
|
2820 | 2827 |
|
2821 | 2828 |
case 135:
|
2822 | |
#line 856 "parse.y" /* yacc.c:1646 */
|
|
2829 |
#line 856 "parse.y" /* yacc.c:1652 */
|
2823 | 2830 |
{ code1(F_ASSIGN) ; }
|
2824 | |
#line 2826 "y.tab.c" /* yacc.c:1646 */
|
|
2831 |
#line 2833 "y.tab.c" /* yacc.c:1652 */
|
2825 | 2832 |
break;
|
2826 | 2833 |
|
2827 | 2834 |
case 136:
|
2828 | |
#line 857 "parse.y" /* yacc.c:1646 */
|
|
2835 |
#line 857 "parse.y" /* yacc.c:1652 */
|
2829 | 2836 |
{ code1(F_ADD_ASG) ; }
|
2830 | |
#line 2832 "y.tab.c" /* yacc.c:1646 */
|
|
2837 |
#line 2839 "y.tab.c" /* yacc.c:1652 */
|
2831 | 2838 |
break;
|
2832 | 2839 |
|
2833 | 2840 |
case 137:
|
2834 | |
#line 858 "parse.y" /* yacc.c:1646 */
|
|
2841 |
#line 858 "parse.y" /* yacc.c:1652 */
|
2835 | 2842 |
{ code1(F_SUB_ASG) ; }
|
2836 | |
#line 2838 "y.tab.c" /* yacc.c:1646 */
|
|
2843 |
#line 2845 "y.tab.c" /* yacc.c:1652 */
|
2837 | 2844 |
break;
|
2838 | 2845 |
|
2839 | 2846 |
case 138:
|
2840 | |
#line 859 "parse.y" /* yacc.c:1646 */
|
|
2847 |
#line 859 "parse.y" /* yacc.c:1652 */
|
2841 | 2848 |
{ code1(F_MUL_ASG) ; }
|
2842 | |
#line 2844 "y.tab.c" /* yacc.c:1646 */
|
|
2849 |
#line 2851 "y.tab.c" /* yacc.c:1652 */
|
2843 | 2850 |
break;
|
2844 | 2851 |
|
2845 | 2852 |
case 139:
|
2846 | |
#line 860 "parse.y" /* yacc.c:1646 */
|
|
2853 |
#line 860 "parse.y" /* yacc.c:1652 */
|
2847 | 2854 |
{ code1(F_DIV_ASG) ; }
|
2848 | |
#line 2850 "y.tab.c" /* yacc.c:1646 */
|
|
2855 |
#line 2857 "y.tab.c" /* yacc.c:1652 */
|
2849 | 2856 |
break;
|
2850 | 2857 |
|
2851 | 2858 |
case 140:
|
2852 | |
#line 861 "parse.y" /* yacc.c:1646 */
|
|
2859 |
#line 861 "parse.y" /* yacc.c:1652 */
|
2853 | 2860 |
{ code1(F_MOD_ASG) ; }
|
2854 | |
#line 2856 "y.tab.c" /* yacc.c:1646 */
|
|
2861 |
#line 2863 "y.tab.c" /* yacc.c:1652 */
|
2855 | 2862 |
break;
|
2856 | 2863 |
|
2857 | 2864 |
case 141:
|
2858 | |
#line 862 "parse.y" /* yacc.c:1646 */
|
|
2865 |
#line 862 "parse.y" /* yacc.c:1652 */
|
2859 | 2866 |
{ code1(F_POW_ASG) ; }
|
2860 | |
#line 2862 "y.tab.c" /* yacc.c:1646 */
|
|
2867 |
#line 2869 "y.tab.c" /* yacc.c:1652 */
|
2861 | 2868 |
break;
|
2862 | 2869 |
|
2863 | 2870 |
case 142:
|
2864 | |
#line 869 "parse.y" /* yacc.c:1646 */
|
|
2871 |
#line 869 "parse.y" /* yacc.c:1652 */
|
2865 | 2872 |
{ code2(MAWK, _BUILTIN, mawk_f2d(mawk_bi_split)) ; }
|
2866 | |
#line 2868 "y.tab.c" /* yacc.c:1646 */
|
|
2873 |
#line 2875 "y.tab.c" /* yacc.c:1652 */
|
2867 | 2874 |
break;
|
2868 | 2875 |
|
2869 | 2876 |
case 143:
|
2870 | |
#line 873 "parse.y" /* yacc.c:1646 */
|
|
2877 |
#line 873 "parse.y" /* yacc.c:1652 */
|
2871 | 2878 |
{ (yyval.start) = (yyvsp[-2].start) ;
|
2872 | 2879 |
check_array(MAWK, (yyvsp[0].stp)) ;
|
2873 | 2880 |
mawk_code_array(MAWK, (yyvsp[0].stp)) ;
|
2874 | 2881 |
}
|
2875 | |
#line 2877 "y.tab.c" /* yacc.c:1646 */
|
|
2882 |
#line 2884 "y.tab.c" /* yacc.c:1652 */
|
2876 | 2883 |
break;
|
2877 | 2884 |
|
2878 | 2885 |
case 144:
|
2879 | |
#line 880 "parse.y" /* yacc.c:1646 */
|
|
2886 |
#line 880 "parse.y" /* yacc.c:1652 */
|
2880 | 2887 |
{ code2(MAWK, _PUSHI, &MAWK->fs_shadow) ; }
|
2881 | |
#line 2883 "y.tab.c" /* yacc.c:1646 */
|
|
2888 |
#line 2890 "y.tab.c" /* yacc.c:1652 */
|
2882 | 2889 |
break;
|
2883 | 2890 |
|
2884 | 2891 |
case 145:
|
2885 | |
#line 882 "parse.y" /* yacc.c:1646 */
|
|
2892 |
#line 882 "parse.y" /* yacc.c:1652 */
|
2886 | 2893 |
{
|
2887 | 2894 |
if ( CDP((yyvsp[-1].start)) == mawk_code_ptr - 2 )
|
2888 | 2895 |
{
|
|
2900 | 2907 |
}
|
2901 | 2908 |
}
|
2902 | 2909 |
}
|
2903 | |
#line 2905 "y.tab.c" /* yacc.c:1646 */
|
|
2910 |
#line 2912 "y.tab.c" /* yacc.c:1652 */
|
2904 | 2911 |
break;
|
2905 | 2912 |
|
2906 | 2913 |
case 146:
|
2907 | |
#line 906 "parse.y" /* yacc.c:1646 */
|
|
2914 |
#line 906 "parse.y" /* yacc.c:1652 */
|
2908 | 2915 |
{ (yyval.start) = (yyvsp[-3].start) ;
|
2909 | 2916 |
code2(MAWK, _BUILTIN, mawk_f2d(mawk_bi_match)) ;
|
2910 | 2917 |
}
|
2911 | |
#line 2913 "y.tab.c" /* yacc.c:1646 */
|
|
2918 |
#line 2920 "y.tab.c" /* yacc.c:1652 */
|
2912 | 2919 |
break;
|
2913 | 2920 |
|
2914 | 2921 |
case 147:
|
2915 | |
#line 913 "parse.y" /* yacc.c:1646 */
|
|
2922 |
#line 913 "parse.y" /* yacc.c:1652 */
|
2916 | 2923 |
{
|
2917 | 2924 |
INST *p1 = CDP((yyvsp[0].start)) ;
|
2918 | 2925 |
|
|
2931 | 2938 |
}
|
2932 | 2939 |
}
|
2933 | 2940 |
}
|
2934 | |
#line 2936 "y.tab.c" /* yacc.c:1646 */
|
|
2941 |
#line 2943 "y.tab.c" /* yacc.c:1652 */
|
2935 | 2942 |
break;
|
2936 | 2943 |
|
2937 | 2944 |
case 148:
|
2938 | |
#line 936 "parse.y" /* yacc.c:1646 */
|
|
2945 |
#line 936 "parse.y" /* yacc.c:1652 */
|
2939 | 2946 |
{ (yyval.start) = mawk_code_offset ;
|
2940 | 2947 |
code1(_EXIT0) ; }
|
2941 | |
#line 2943 "y.tab.c" /* yacc.c:1646 */
|
|
2948 |
#line 2950 "y.tab.c" /* yacc.c:1652 */
|
2942 | 2949 |
break;
|
2943 | 2950 |
|
2944 | 2951 |
case 149:
|
2945 | |
#line 939 "parse.y" /* yacc.c:1646 */
|
|
2952 |
#line 939 "parse.y" /* yacc.c:1652 */
|
2946 | 2953 |
{ (yyval.start) = (yyvsp[-1].start) ; code1(_EXIT) ; }
|
2947 | |
#line 2949 "y.tab.c" /* yacc.c:1646 */
|
|
2954 |
#line 2956 "y.tab.c" /* yacc.c:1652 */
|
2948 | 2955 |
break;
|
2949 | 2956 |
|
2950 | 2957 |
case 150:
|
2951 | |
#line 942 "parse.y" /* yacc.c:1646 */
|
|
2958 |
#line 942 "parse.y" /* yacc.c:1652 */
|
2952 | 2959 |
{ (yyval.start) = mawk_code_offset ;
|
2953 | 2960 |
code1(_RET0) ; }
|
2954 | |
#line 2956 "y.tab.c" /* yacc.c:1646 */
|
|
2961 |
#line 2963 "y.tab.c" /* yacc.c:1652 */
|
2955 | 2962 |
break;
|
2956 | 2963 |
|
2957 | 2964 |
case 151:
|
2958 | |
#line 945 "parse.y" /* yacc.c:1646 */
|
|
2965 |
#line 945 "parse.y" /* yacc.c:1652 */
|
2959 | 2966 |
{ (yyval.start) = (yyvsp[-1].start) ; code1(_RET) ; }
|
2960 | |
#line 2962 "y.tab.c" /* yacc.c:1646 */
|
|
2967 |
#line 2969 "y.tab.c" /* yacc.c:1652 */
|
2961 | 2968 |
break;
|
2962 | 2969 |
|
2963 | 2970 |
case 152:
|
2964 | |
#line 950 "parse.y" /* yacc.c:1646 */
|
|
2971 |
#line 950 "parse.y" /* yacc.c:1652 */
|
2965 | 2972 |
{ (yyval.start) = mawk_code_offset ;
|
2966 | 2973 |
code2(MAWK, F_PUSHA, &MAWK->field[0]) ;
|
2967 | 2974 |
code1(_PUSHINT) ; code1(0) ;
|
2968 | 2975 |
code2(MAWK, _BUILTIN, mawk_f2d(mawk_bi_getline)) ;
|
2969 | 2976 |
MAWK->getline_flag = 0 ;
|
2970 | 2977 |
}
|
2971 | |
#line 2973 "y.tab.c" /* yacc.c:1646 */
|
|
2978 |
#line 2980 "y.tab.c" /* yacc.c:1652 */
|
2972 | 2979 |
break;
|
2973 | 2980 |
|
2974 | 2981 |
case 153:
|
2975 | |
#line 957 "parse.y" /* yacc.c:1646 */
|
|
2982 |
#line 957 "parse.y" /* yacc.c:1652 */
|
2976 | 2983 |
{ (yyval.start) = (yyvsp[0].start) ;
|
2977 | 2984 |
code1(_PUSHINT) ; code1(0) ;
|
2978 | 2985 |
code2(MAWK, _BUILTIN, mawk_f2d(mawk_bi_getline)) ;
|
2979 | 2986 |
MAWK->getline_flag = 0 ;
|
2980 | 2987 |
}
|
2981 | |
#line 2983 "y.tab.c" /* yacc.c:1646 */
|
|
2988 |
#line 2990 "y.tab.c" /* yacc.c:1652 */
|
2982 | 2989 |
break;
|
2983 | 2990 |
|
2984 | 2991 |
case 154:
|
2985 | |
#line 963 "parse.y" /* yacc.c:1646 */
|
|
2992 |
#line 963 "parse.y" /* yacc.c:1652 */
|
2986 | 2993 |
{ code1(_PUSHINT) ; code1(F_IN) ;
|
2987 | 2994 |
code2(MAWK, _BUILTIN, mawk_f2d(mawk_bi_getline)) ;
|
2988 | 2995 |
/* getline_flag already off in yylex() */
|
2989 | 2996 |
}
|
2990 | |
#line 2992 "y.tab.c" /* yacc.c:1646 */
|
|
2997 |
#line 2999 "y.tab.c" /* yacc.c:1652 */
|
2991 | 2998 |
break;
|
2992 | 2999 |
|
2993 | 3000 |
case 155:
|
2994 | |
#line 968 "parse.y" /* yacc.c:1646 */
|
|
3001 |
#line 968 "parse.y" /* yacc.c:1652 */
|
2995 | 3002 |
{ code2(MAWK, F_PUSHA, &MAWK->field[0]) ;
|
2996 | 3003 |
code1(_PUSHINT) ; code1(PIPE_IN) ;
|
2997 | 3004 |
code2(MAWK, _BUILTIN, mawk_f2d(mawk_bi_getline)) ;
|
2998 | 3005 |
}
|
2999 | |
#line 3001 "y.tab.c" /* yacc.c:1646 */
|
|
3006 |
#line 3008 "y.tab.c" /* yacc.c:1652 */
|
3000 | 3007 |
break;
|
3001 | 3008 |
|
3002 | 3009 |
case 156:
|
3003 | |
#line 973 "parse.y" /* yacc.c:1646 */
|
|
3010 |
#line 973 "parse.y" /* yacc.c:1652 */
|
3004 | 3011 |
{
|
3005 | 3012 |
code1(_PUSHINT) ; code1(PIPE_IN) ;
|
3006 | 3013 |
code2(MAWK, _BUILTIN, mawk_f2d(mawk_bi_getline)) ;
|
3007 | 3014 |
}
|
3008 | |
#line 3010 "y.tab.c" /* yacc.c:1646 */
|
|
3015 |
#line 3017 "y.tab.c" /* yacc.c:1652 */
|
3009 | 3016 |
break;
|
3010 | 3017 |
|
3011 | 3018 |
case 157:
|
3012 | |
#line 979 "parse.y" /* yacc.c:1646 */
|
|
3019 |
#line 979 "parse.y" /* yacc.c:1652 */
|
3013 | 3020 |
{ MAWK->getline_flag = 1 ; }
|
3014 | |
#line 3016 "y.tab.c" /* yacc.c:1646 */
|
|
3021 |
#line 3023 "y.tab.c" /* yacc.c:1652 */
|
3015 | 3022 |
break;
|
3016 | 3023 |
|
3017 | 3024 |
case 161:
|
3018 | |
#line 986 "parse.y" /* yacc.c:1646 */
|
|
3025 |
#line 986 "parse.y" /* yacc.c:1652 */
|
3019 | 3026 |
{ (yyval.start) = mawk_code_offset ;
|
3020 | 3027 |
code2(MAWK, F_PUSHA, MAWK->field+0) ;
|
3021 | 3028 |
}
|
3022 | |
#line 3024 "y.tab.c" /* yacc.c:1646 */
|
|
3029 |
#line 3031 "y.tab.c" /* yacc.c:1652 */
|
3023 | 3030 |
break;
|
3024 | 3031 |
|
3025 | 3032 |
case 162:
|
3026 | |
#line 990 "parse.y" /* yacc.c:1646 */
|
|
3033 |
#line 990 "parse.y" /* yacc.c:1652 */
|
3027 | 3034 |
{ (yyval.start) = (yyvsp[-1].start) ; }
|
3028 | |
#line 3030 "y.tab.c" /* yacc.c:1646 */
|
|
3035 |
#line 3037 "y.tab.c" /* yacc.c:1652 */
|
3029 | 3036 |
break;
|
3030 | 3037 |
|
3031 | 3038 |
case 163:
|
3032 | |
#line 998 "parse.y" /* yacc.c:1646 */
|
|
3039 |
#line 998 "parse.y" /* yacc.c:1652 */
|
3033 | 3040 |
{
|
3034 | 3041 |
INST *p5 = CDP((yyvsp[-1].start)) ;
|
3035 | 3042 |
INST *p6 = CDP((yyvsp[0].start)) ;
|
|
3046 | 3053 |
code2(MAWK, _BUILTIN, mawk_f2d((yyvsp[-5].fp))) ;
|
3047 | 3054 |
(yyval.start) = (yyvsp[-3].start) ;
|
3048 | 3055 |
}
|
3049 | |
#line 3051 "y.tab.c" /* yacc.c:1646 */
|
|
3056 |
#line 3058 "y.tab.c" /* yacc.c:1652 */
|
3050 | 3057 |
break;
|
3051 | 3058 |
|
3052 | 3059 |
case 164:
|
3053 | |
#line 1016 "parse.y" /* yacc.c:1646 */
|
|
3060 |
#line 1016 "parse.y" /* yacc.c:1652 */
|
3054 | 3061 |
{ (yyval.fp) = mawk_bi_sub ; }
|
3055 | |
#line 3057 "y.tab.c" /* yacc.c:1646 */
|
|
3062 |
#line 3064 "y.tab.c" /* yacc.c:1652 */
|
3056 | 3063 |
break;
|
3057 | 3064 |
|
3058 | 3065 |
case 165:
|
3059 | |
#line 1017 "parse.y" /* yacc.c:1646 */
|
|
3066 |
#line 1017 "parse.y" /* yacc.c:1652 */
|
3060 | 3067 |
{ (yyval.fp) = mawk_bi_gsub ; }
|
3061 | |
#line 3063 "y.tab.c" /* yacc.c:1646 */
|
|
3068 |
#line 3070 "y.tab.c" /* yacc.c:1652 */
|
3062 | 3069 |
break;
|
3063 | 3070 |
|
3064 | 3071 |
case 166:
|
3065 | |
#line 1022 "parse.y" /* yacc.c:1646 */
|
|
3072 |
#line 1022 "parse.y" /* yacc.c:1652 */
|
3066 | 3073 |
{ (yyval.start) = mawk_code_offset ;
|
3067 | 3074 |
code2(MAWK, F_PUSHA, &MAWK->field[0]) ;
|
3068 | 3075 |
}
|
3069 | |
#line 3071 "y.tab.c" /* yacc.c:1646 */
|
|
3076 |
#line 3078 "y.tab.c" /* yacc.c:1652 */
|
3070 | 3077 |
break;
|
3071 | 3078 |
|
3072 | 3079 |
case 167:
|
3073 | |
#line 1027 "parse.y" /* yacc.c:1646 */
|
|
3080 |
#line 1027 "parse.y" /* yacc.c:1652 */
|
3074 | 3081 |
{ (yyval.start) = (yyvsp[-1].start) ; }
|
3075 | |
#line 3077 "y.tab.c" /* yacc.c:1646 */
|
|
3082 |
#line 3084 "y.tab.c" /* yacc.c:1652 */
|
3076 | 3083 |
break;
|
3077 | 3084 |
|
3078 | 3085 |
case 168:
|
3079 | |
#line 1035 "parse.y" /* yacc.c:1646 */
|
|
3086 |
#line 1035 "parse.y" /* yacc.c:1652 */
|
3080 | 3087 |
{
|
3081 | 3088 |
resize_fblock(MAWK, (yyvsp[-1].fbp)) ;
|
3082 | 3089 |
mawk_restore_ids(MAWK) ;
|
3083 | 3090 |
switch_code_to_main(MAWK) ;
|
3084 | 3091 |
}
|
3085 | |
#line 3087 "y.tab.c" /* yacc.c:1646 */
|
|
3092 |
#line 3094 "y.tab.c" /* yacc.c:1652 */
|
3086 | 3093 |
break;
|
3087 | 3094 |
|
3088 | 3095 |
case 169:
|
3089 | |
#line 1043 "parse.y" /* yacc.c:1646 */
|
|
3096 |
#line 1043 "parse.y" /* yacc.c:1652 */
|
3090 | 3097 |
{ mawk_eat_nl(MAWK, &yylval) ;
|
3091 | 3098 |
MAWK->scope = SCOPE_FUNCT ;
|
3092 | 3099 |
MAWK->active_funct = (yyvsp[-3].fbp) ;
|
|
3103 | 3110 |
mawk_code_limit = mawk_code_base + PAGESZ ;
|
3104 | 3111 |
mawk_code_warn = mawk_code_limit - CODEWARN ;
|
3105 | 3112 |
}
|
3106 | |
#line 3108 "y.tab.c" /* yacc.c:1646 */
|
|
3113 |
#line 3115 "y.tab.c" /* yacc.c:1652 */
|
3107 | 3114 |
break;
|
3108 | 3115 |
|
3109 | 3116 |
case 170:
|
3110 | |
#line 1062 "parse.y" /* yacc.c:1646 */
|
|
3117 |
#line 1062 "parse.y" /* yacc.c:1652 */
|
3111 | 3118 |
{ FBLOCK *fbp ;
|
3112 | 3119 |
|
3113 | 3120 |
if ( (yyvsp[0].stp)->type == ST_NONE )
|
|
3129 | 3136 |
}
|
3130 | 3137 |
(yyval.fbp) = fbp ;
|
3131 | 3138 |
}
|
3132 | |
#line 3134 "y.tab.c" /* yacc.c:1646 */
|
|
3139 |
#line 3141 "y.tab.c" /* yacc.c:1652 */
|
3133 | 3140 |
break;
|
3134 | 3141 |
|
3135 | 3142 |
case 171:
|
3136 | |
#line 1085 "parse.y" /* yacc.c:1646 */
|
|
3143 |
#line 1085 "parse.y" /* yacc.c:1652 */
|
3137 | 3144 |
{ (yyval.fbp) = (yyvsp[0].fbp) ;
|
3138 | 3145 |
if ( (yyvsp[0].fbp)->code )
|
3139 | 3146 |
mawk_compile_error(MAWK, "redefinition of %s" , (yyvsp[0].fbp)->name) ;
|
3140 | 3147 |
}
|
3141 | |
#line 3143 "y.tab.c" /* yacc.c:1646 */
|
|
3148 |
#line 3150 "y.tab.c" /* yacc.c:1652 */
|
3142 | 3149 |
break;
|
3143 | 3150 |
|
3144 | 3151 |
case 172:
|
3145 | |
#line 1091 "parse.y" /* yacc.c:1646 */
|
|
3152 |
#line 1091 "parse.y" /* yacc.c:1652 */
|
3146 | 3153 |
{ (yyval.ival) = 0 ; }
|
3147 | |
#line 3149 "y.tab.c" /* yacc.c:1646 */
|
|
3154 |
#line 3156 "y.tab.c" /* yacc.c:1652 */
|
3148 | 3155 |
break;
|
3149 | 3156 |
|
3150 | 3157 |
case 174:
|
3151 | |
#line 1096 "parse.y" /* yacc.c:1646 */
|
|
3158 |
#line 1096 "parse.y" /* yacc.c:1652 */
|
3152 | 3159 |
{ (yyvsp[0].stp) = mawk_save_id(MAWK, (yyvsp[0].stp)->name) ;
|
3153 | 3160 |
(yyvsp[0].stp)->type = ST_LOCAL_NONE ;
|
3154 | 3161 |
(yyvsp[0].stp)->offset = 0 ;
|
3155 | 3162 |
(yyval.ival) = 1 ;
|
3156 | 3163 |
}
|
3157 | |
#line 3159 "y.tab.c" /* yacc.c:1646 */
|
|
3164 |
#line 3166 "y.tab.c" /* yacc.c:1652 */
|
3158 | 3165 |
break;
|
3159 | 3166 |
|
3160 | 3167 |
case 175:
|
3161 | |
#line 1102 "parse.y" /* yacc.c:1646 */
|
|
3168 |
#line 1102 "parse.y" /* yacc.c:1652 */
|
3162 | 3169 |
{ if ( is_local((yyvsp[0].stp)) )
|
3163 | 3170 |
mawk_compile_error(MAWK, "%s is duplicated in argument list",
|
3164 | 3171 |
(yyvsp[0].stp)->name) ;
|
|
3169 | 3176 |
(yyval.ival) = (yyvsp[-2].ival) + 1 ;
|
3170 | 3177 |
}
|
3171 | 3178 |
}
|
3172 | |
#line 3174 "y.tab.c" /* yacc.c:1646 */
|
|
3179 |
#line 3181 "y.tab.c" /* yacc.c:1652 */
|
3173 | 3180 |
break;
|
3174 | 3181 |
|
3175 | 3182 |
case 176:
|
3176 | |
#line 1115 "parse.y" /* yacc.c:1646 */
|
|
3183 |
#line 1115 "parse.y" /* yacc.c:1652 */
|
3177 | 3184 |
{ /* we may have to recover from a bungled function
|
3178 | 3185 |
definition */
|
3179 | 3186 |
/* can have local ids, before code scope
|
|
3182 | 3189 |
|
3183 | 3190 |
switch_code_to_main(MAWK) ;
|
3184 | 3191 |
}
|
3185 | |
#line 3187 "y.tab.c" /* yacc.c:1646 */
|
|
3192 |
#line 3194 "y.tab.c" /* yacc.c:1652 */
|
3186 | 3193 |
break;
|
3187 | 3194 |
|
3188 | 3195 |
case 177:
|
3189 | |
#line 1127 "parse.y" /* yacc.c:1646 */
|
|
3196 |
#line 1127 "parse.y" /* yacc.c:1652 */
|
3190 | 3197 |
{ (yyval.start) = (yyvsp[-1].start) ;
|
3191 | 3198 |
code2(MAWK, _CALL, (yyvsp[-2].fbp)) ;
|
3192 | 3199 |
|
3193 | 3200 |
if ( (yyvsp[0].ca_p) ) code1((yyvsp[0].ca_p)->arg_num+1) ;
|
3194 | 3201 |
else code1(0) ;
|
3195 | |
|
3196 | |
mawk_check_fcall(MAWK, (yyvsp[-2].fbp), MAWK->scope, MAWK->ps.code_move_level, MAWK->active_funct,
|
3197 | |
(yyvsp[0].ca_p), MAWK->token_lineno) ;
|
|
3202 |
|
|
3203 |
mawk_check_fcall(MAWK, (yyvsp[-2].fbp), MAWK->scope, MAWK->ps.code_move_level, MAWK->active_funct, (yyvsp[0].ca_p), MAWK->token_lineno);
|
3198 | 3204 |
}
|
3199 | |
#line 3201 "y.tab.c" /* yacc.c:1646 */
|
|
3205 |
#line 3207 "y.tab.c" /* yacc.c:1652 */
|
3200 | 3206 |
break;
|
3201 | 3207 |
|
3202 | 3208 |
case 178:
|
3203 | |
#line 1139 "parse.y" /* yacc.c:1646 */
|
|
3209 |
#line 1138 "parse.y" /* yacc.c:1652 */
|
3204 | 3210 |
{ (yyval.start) = (yyvsp[-1].start) ;
|
3205 | 3211 |
code2(MAWK, _CALL, (yyvsp[-2].ptr)) ;
|
3206 | 3212 |
|
3207 | 3213 |
if ( (yyvsp[0].ca_p) ) code1((yyvsp[0].ca_p)->arg_num+1) ;
|
3208 | 3214 |
else code1(0) ;
|
|
3215 |
|
|
3216 |
mawk_check_ccall(MAWK, (yyvsp[-2].ptr), MAWK->scope, MAWK->ps.code_move_level, MAWK->active_funct, (yyvsp[0].ca_p), MAWK->token_lineno);
|
3209 | 3217 |
}
|
3210 | |
#line 3212 "y.tab.c" /* yacc.c:1646 */
|
|
3218 |
#line 3220 "y.tab.c" /* yacc.c:1652 */
|
3211 | 3219 |
break;
|
3212 | 3220 |
|
3213 | 3221 |
case 179:
|
3214 | |
#line 1148 "parse.y" /* yacc.c:1646 */
|
|
3222 |
#line 1149 "parse.y" /* yacc.c:1652 */
|
3215 | 3223 |
{ (yyval.ca_p) = (CA_REC *) 0 ; }
|
3216 | |
#line 3218 "y.tab.c" /* yacc.c:1646 */
|
|
3224 |
#line 3226 "y.tab.c" /* yacc.c:1652 */
|
3217 | 3225 |
break;
|
3218 | 3226 |
|
3219 | 3227 |
case 180:
|
3220 | |
#line 1150 "parse.y" /* yacc.c:1646 */
|
|
3228 |
#line 1151 "parse.y" /* yacc.c:1652 */
|
3221 | 3229 |
{ (yyval.ca_p) = (yyvsp[0].ca_p) ;
|
3222 | 3230 |
(yyval.ca_p)->link = (yyvsp[-1].ca_p) ;
|
3223 | 3231 |
(yyval.ca_p)->arg_num = (yyvsp[-1].ca_p) ? (yyvsp[-1].ca_p)->arg_num+1 : 0 ;
|
3224 | 3232 |
}
|
3225 | |
#line 3227 "y.tab.c" /* yacc.c:1646 */
|
|
3233 |
#line 3235 "y.tab.c" /* yacc.c:1652 */
|
3226 | 3234 |
break;
|
3227 | 3235 |
|
3228 | 3236 |
case 181:
|
3229 | |
#line 1165 "parse.y" /* yacc.c:1646 */
|
|
3237 |
#line 1166 "parse.y" /* yacc.c:1652 */
|
3230 | 3238 |
{ (yyval.ca_p) = (CA_REC *) 0 ; }
|
3231 | |
#line 3233 "y.tab.c" /* yacc.c:1646 */
|
|
3239 |
#line 3241 "y.tab.c" /* yacc.c:1652 */
|
3232 | 3240 |
break;
|
3233 | 3241 |
|
3234 | 3242 |
case 182:
|
3235 | |
#line 1167 "parse.y" /* yacc.c:1646 */
|
|
3243 |
#line 1168 "parse.y" /* yacc.c:1652 */
|
3236 | 3244 |
{ (yyval.ca_p) = MAWK_ZMALLOC(MAWK, CA_REC) ;
|
3237 | 3245 |
(yyval.ca_p)->link = (yyvsp[-2].ca_p) ;
|
3238 | 3246 |
(yyval.ca_p)->type = CA_EXPR ;
|
3239 | 3247 |
(yyval.ca_p)->arg_num = (yyvsp[-2].ca_p) ? (yyvsp[-2].ca_p)->arg_num+1 : 0 ;
|
3240 | 3248 |
(yyval.ca_p)->call_offset = mawk_code_offset ;
|
3241 | 3249 |
}
|
3242 | |
#line 3244 "y.tab.c" /* yacc.c:1646 */
|
|
3250 |
#line 3252 "y.tab.c" /* yacc.c:1652 */
|
3243 | 3251 |
break;
|
3244 | 3252 |
|
3245 | 3253 |
case 183:
|
3246 | |
#line 1174 "parse.y" /* yacc.c:1646 */
|
|
3254 |
#line 1175 "parse.y" /* yacc.c:1652 */
|
3247 | 3255 |
{ (yyval.ca_p) = MAWK_ZMALLOC(MAWK, CA_REC) ;
|
3248 | 3256 |
(yyval.ca_p)->link = (yyvsp[-2].ca_p) ;
|
3249 | 3257 |
(yyval.ca_p)->arg_num = (yyvsp[-2].ca_p) ? (yyvsp[-2].ca_p)->arg_num+1 : 0 ;
|
3250 | 3258 |
|
3251 | 3259 |
mawk_code_call_id(MAWK, (yyval.ca_p), (yyvsp[-1].stp)) ;
|
3252 | 3260 |
}
|
3253 | |
#line 3255 "y.tab.c" /* yacc.c:1646 */
|
|
3261 |
#line 3263 "y.tab.c" /* yacc.c:1652 */
|
3254 | 3262 |
break;
|
3255 | 3263 |
|
3256 | 3264 |
case 184:
|
3257 | |
#line 1183 "parse.y" /* yacc.c:1646 */
|
|
3265 |
#line 1184 "parse.y" /* yacc.c:1652 */
|
3258 | 3266 |
{ (yyval.ca_p) = MAWK_ZMALLOC(MAWK, CA_REC) ;
|
3259 | 3267 |
(yyval.ca_p)->type = CA_EXPR ;
|
3260 | 3268 |
(yyval.ca_p)->call_offset = mawk_code_offset ;
|
3261 | 3269 |
}
|
3262 | |
#line 3264 "y.tab.c" /* yacc.c:1646 */
|
|
3270 |
#line 3272 "y.tab.c" /* yacc.c:1652 */
|
3263 | 3271 |
break;
|
3264 | 3272 |
|
3265 | 3273 |
case 185:
|
3266 | |
#line 1189 "parse.y" /* yacc.c:1646 */
|
|
3274 |
#line 1190 "parse.y" /* yacc.c:1652 */
|
3267 | 3275 |
{ (yyval.ca_p) = MAWK_ZMALLOC(MAWK, CA_REC) ;
|
3268 | 3276 |
mawk_code_call_id(MAWK, (yyval.ca_p), (yyvsp[-1].stp)) ;
|
3269 | 3277 |
}
|
3270 | |
#line 3272 "y.tab.c" /* yacc.c:1646 */
|
|
3278 |
#line 3280 "y.tab.c" /* yacc.c:1652 */
|
3271 | 3279 |
break;
|
3272 | 3280 |
|
3273 | 3281 |
case 186:
|
3274 | |
#line 1196 "parse.y" /* yacc.c:1646 */
|
|
3282 |
#line 1197 "parse.y" /* yacc.c:1652 */
|
3275 | 3283 |
{ mawk_parser_include(MAWK, (yyvsp[0].ptr)); }
|
3276 | |
#line 3278 "y.tab.c" /* yacc.c:1646 */
|
3277 | |
break;
|
3278 | |
|
3279 | |
|
3280 | |
#line 3282 "y.tab.c" /* yacc.c:1646 */
|
|
3284 |
#line 3286 "y.tab.c" /* yacc.c:1652 */
|
|
3285 |
break;
|
|
3286 |
|
|
3287 |
|
|
3288 |
#line 3290 "y.tab.c" /* yacc.c:1652 */
|
3281 | 3289 |
default: break;
|
3282 | 3290 |
}
|
3283 | 3291 |
/* User semantic actions sometimes alter yychar, and that requires
|
|
3302 | 3310 |
/* Now 'shift' the result of the reduction. Determine what state
|
3303 | 3311 |
that goes to, based on the state we popped back to and the rule
|
3304 | 3312 |
number reduced by. */
|
3305 | |
|
3306 | |
yyn = yyr1[yyn];
|
3307 | |
|
3308 | |
yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
|
3309 | |
if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
|
3310 | |
yystate = yytable[yystate];
|
3311 | |
else
|
3312 | |
yystate = yydefgoto[yyn - YYNTOKENS];
|
|
3313 |
{
|
|
3314 |
const int yylhs = yyr1[yyn] - YYNTOKENS;
|
|
3315 |
const int yyi = yypgoto[yylhs] + *yyssp;
|
|
3316 |
yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp
|
|
3317 |
? yytable[yyi]
|
|
3318 |
: yydefgoto[yylhs]);
|
|
3319 |
}
|
3313 | 3320 |
|
3314 | 3321 |
goto yynewstate;
|
3315 | 3322 |
|
|
3392 | 3399 |
| yyerrorlab -- error raised explicitly by YYERROR. |
|
3393 | 3400 |
`---------------------------------------------------*/
|
3394 | 3401 |
yyerrorlab:
|
3395 | |
|
3396 | |
/* Pacify compilers like GCC when the user code never invokes
|
3397 | |
YYERROR and the label yyerrorlab therefore never appears in user
|
3398 | |
code. */
|
3399 | |
if (/*CONSTCOND*/ 0)
|
3400 | |
goto yyerrorlab;
|
|
3402 |
/* Pacify compilers when the user code never invokes YYERROR and the
|
|
3403 |
label yyerrorlab therefore never appears in user code. */
|
|
3404 |
if (0)
|
|
3405 |
YYERROR;
|
3401 | 3406 |
|
3402 | 3407 |
/* Do not reclaim the symbols of the rule whose action triggered
|
3403 | 3408 |
this YYERROR. */
|
|
3459 | 3464 |
yyresult = 0;
|
3460 | 3465 |
goto yyreturn;
|
3461 | 3466 |
|
|
3467 |
|
3462 | 3468 |
/*-----------------------------------.
|
3463 | 3469 |
| yyabortlab -- YYABORT comes here. |
|
3464 | 3470 |
`-----------------------------------*/
|
3465 | 3471 |
yyabortlab:
|
3466 | 3472 |
yyresult = 1;
|
3467 | 3473 |
goto yyreturn;
|
|
3474 |
|
3468 | 3475 |
|
3469 | 3476 |
#if !defined yyoverflow || YYERROR_VERBOSE
|
3470 | 3477 |
/*-------------------------------------------------.
|
|
3476 | 3483 |
/* Fall through. */
|
3477 | 3484 |
#endif
|
3478 | 3485 |
|
|
3486 |
|
|
3487 |
/*-----------------------------------------------------.
|
|
3488 |
| yyreturn -- parsing is finished, return the result. |
|
|
3489 |
`-----------------------------------------------------*/
|
3479 | 3490 |
yyreturn:
|
3480 | 3491 |
if (yychar != YYEMPTY)
|
3481 | 3492 |
{
|
|
3505 | 3516 |
#endif
|
3506 | 3517 |
return yyresult;
|
3507 | 3518 |
}
|
3508 | |
#line 1204 "parse.y" /* yacc.c:1906 */
|
|
3519 |
#line 1205 "parse.y" /* yacc.c:1918 */
|
3509 | 3520 |
|
3510 | 3521 |
|
3511 | 3522 |
/* resize the code for a user function */
|