diff options
Diffstat (limited to 'command.c')
-rw-r--r-- | command.c | 620 |
1 files changed, 317 insertions, 303 deletions
@@ -1,8 +1,9 @@ -/* A Bison parser, made by GNU Bison 3.2.1. */ +/* A Bison parser, made by GNU Bison 3.3. */ /* Bison implementation for Yacc-like parsers in C - Copyright (C) 1984, 1989-1990, 2000-2015, 2018 Free Software Foundation, Inc. + Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2019 Free Software Foundation, + Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -47,7 +48,7 @@ #define YYBISON 1 /* Bison version. */ -#define YYBISON_VERSION "3.2.1" +#define YYBISON_VERSION "3.3" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" @@ -73,7 +74,7 @@ #define yychar zzchar /* First part of user prologue. */ -#line 28 "command.y" /* yacc.c:338 */ +#line 28 "command.y" /* yacc.c:337 */ #include "awk.h" #include "cmd.h" @@ -140,7 +141,7 @@ static void append_cmdarg(CMDARG *arg); static int find_argument(CMDARG *arg); #define YYSTYPE CMDARG * -#line 144 "command.c" /* yacc.c:338 */ +#line 145 "command.c" /* yacc.c:337 */ # ifndef YY_NULLPTR # if defined __cplusplus # if 201103L <= __cplusplus @@ -529,16 +530,16 @@ union yyalloc /* YYNSTATES -- Number of states. */ #define YYNSTATES 203 -/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned - by yylex, with out-of-bounds checking. */ #define YYUNDEFTOK 2 #define YYMAXUTOK 303 +/* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM + as returned by yylex, with out-of-bounds checking. */ #define YYTRANSLATE(YYX) \ ((unsigned) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM - as returned by yylex, without out-of-bounds checking. */ + as returned by yylex. */ static const yytype_uint8 yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -861,22 +862,22 @@ static const yytype_uint8 yyr2[] = #define YYRECOVERING() (!!yyerrstatus) -#define YYBACKUP(Token, Value) \ -do \ - if (yychar == YYEMPTY) \ - { \ - yychar = (Token); \ - yylval = (Value); \ - YYPOPSTACK (yylen); \ - yystate = *yyssp; \ - goto yybackup; \ - } \ - else \ - { \ - yyerror (YY_("syntax error: cannot back up")); \ - YYERROR; \ - } \ -while (0) +#define YYBACKUP(Token, Value) \ + do \ + if (yychar == YYEMPTY) \ + { \ + yychar = (Token); \ + yylval = (Value); \ + YYPOPSTACK (yylen); \ + yystate = *yyssp; \ + goto yybackup; \ + } \ + else \ + { \ + yyerror (YY_("syntax error: cannot back up")); \ + YYERROR; \ + } \ + while (0) /* Error token number */ #define YYTERROR 1 @@ -991,7 +992,7 @@ yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule) YYFPRINTF (stderr, " $%d = ", yyi + 1); yy_symbol_print (stderr, yystos[yyssp[yyi + 1 - yynrhs]], - &(yyvsp[(yyi + 1) - (yynrhs)]) + &yyvsp[(yyi + 1) - (yynrhs)] ); YYFPRINTF (stderr, "\n"); } @@ -1095,7 +1096,10 @@ yytnamerr (char *yyres, const char *yystr) case '\\': if (*++yyp != '\\') goto do_not_strip_quotes; - /* Fall through. */ + else + goto append; + + append: default: if (yyres) yyres[yyn] = *yyp; @@ -1191,10 +1195,10 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, yyarg[yycount++] = yytname[yyx]; { YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]); - if (! (yysize <= yysize1 - && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) + if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM) + yysize = yysize1; + else return 2; - yysize = yysize1; } } } @@ -1218,9 +1222,10 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, { YYSIZE_T yysize1 = yysize + yystrlen (yyformat); - if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) + if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM) + yysize = yysize1; + else return 2; - yysize = yysize1; } if (*yymsg_alloc < yysize) @@ -1346,23 +1351,31 @@ yyparse (void) yychar = YYEMPTY; /* Cause a token to be read. */ goto yysetstate; + /*------------------------------------------------------------. -| yynewstate -- Push a new state, which is found in yystate. | +| yynewstate -- push a new state, which is found in yystate. | `------------------------------------------------------------*/ - yynewstate: +yynewstate: /* In all cases, when you get here, the value and location stacks have just been pushed. So pushing a state here evens the stacks. */ yyssp++; - yysetstate: + +/*--------------------------------------------------------------------. +| yynewstate -- set current state (the top of the stack) to yystate. | +`--------------------------------------------------------------------*/ +yysetstate: *yyssp = (yytype_int16) yystate; if (yyss + yystacksize - 1 <= yyssp) +#if !defined yyoverflow && !defined YYSTACK_RELOCATE + goto yyexhaustedlab; +#else { /* Get the current used size of the three stacks, in elements. */ YYSIZE_T yysize = (YYSIZE_T) (yyssp - yyss + 1); -#ifdef yyoverflow +# if defined yyoverflow { /* Give user a chance to reallocate the stack. Use copies of these so that the &'s don't force the real ones into @@ -1381,10 +1394,7 @@ yyparse (void) yyss = yyss1; yyvs = yyvs1; } -#else /* no yyoverflow */ -# ifndef YYSTACK_RELOCATE - goto yyexhaustedlab; -# else +# else /* defined YYSTACK_RELOCATE */ /* Extend the stack our own way. */ if (YYMAXDEPTH <= yystacksize) goto yyexhaustedlab; @@ -1400,12 +1410,11 @@ yyparse (void) goto yyexhaustedlab; YYSTACK_RELOCATE (yyss_alloc, yyss); YYSTACK_RELOCATE (yyvs_alloc, yyvs); -# undef YYSTACK_RELOCATE +# undef YYSTACK_RELOCATE if (yyss1 != yyssa) YYSTACK_FREE (yyss1); } # endif -#endif /* no yyoverflow */ yyssp = yyss + yysize - 1; yyvsp = yyvs + yysize - 1; @@ -1416,6 +1425,7 @@ yyparse (void) if (yyss + yystacksize - 1 <= yyssp) YYABORT; } +#endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */ YYDPRINTF ((stderr, "Entering state %d\n", yystate)); @@ -1424,11 +1434,11 @@ yyparse (void) goto yybackup; + /*-----------. | yybackup. | `-----------*/ yybackup: - /* Do appropriate processing given the current state. Read a lookahead token if we need one and don't already have one. */ @@ -1501,7 +1511,7 @@ yydefault: /*-----------------------------. -| yyreduce -- Do a reduction. | +| yyreduce -- do a reduction. | `-----------------------------*/ yyreduce: /* yyn is the number of a rule to reduce with. */ @@ -1522,7 +1532,7 @@ yyreduce: switch (yyn) { case 3: -#line 111 "command.y" /* yacc.c:1645 */ +#line 111 "command.y" /* yacc.c:1652 */ { cmd_idx = -1; want_nodeval = false; @@ -1537,11 +1547,11 @@ yyreduce: arg_list = NULL; } } -#line 1541 "command.c" /* yacc.c:1645 */ +#line 1551 "command.c" /* yacc.c:1652 */ break; case 5: -#line 130 "command.y" /* yacc.c:1645 */ +#line 130 "command.y" /* yacc.c:1652 */ { if (errcount == 0 && cmd_idx >= 0) { Func_cmd cmdfunc; @@ -1591,25 +1601,25 @@ yyreduce: YYACCEPT; } } -#line 1595 "command.c" /* yacc.c:1645 */ +#line 1605 "command.c" /* yacc.c:1652 */ break; case 6: -#line 180 "command.y" /* yacc.c:1645 */ +#line 180 "command.y" /* yacc.c:1652 */ { yyerrok; } -#line 1603 "command.c" /* yacc.c:1645 */ +#line 1613 "command.c" /* yacc.c:1652 */ break; case 22: -#line 214 "command.y" /* yacc.c:1645 */ +#line 214 "command.y" /* yacc.c:1652 */ { want_nodeval = true; } -#line 1609 "command.c" /* yacc.c:1645 */ +#line 1619 "command.c" /* yacc.c:1652 */ break; case 23: -#line 219 "command.y" /* yacc.c:1645 */ +#line 219 "command.y" /* yacc.c:1652 */ { if (errcount == 0) { /* don't free arg_list; passed on to statement_list @@ -1625,39 +1635,39 @@ yyreduce: in_eval = true; } } -#line 1629 "command.c" /* yacc.c:1645 */ +#line 1639 "command.c" /* yacc.c:1652 */ break; case 24: -#line 238 "command.y" /* yacc.c:1645 */ +#line 238 "command.y" /* yacc.c:1652 */ { - (yyval) = append_statement(arg_list, (char *) start_EVAL); + yyval = append_statement(arg_list, (char *) start_EVAL); if (read_a_line == read_commands_string) /* unserializing 'eval' in 'commands' */ - (yyval)->a_string[0] = '\0'; + yyval->a_string[0] = '\0'; free_cmdarg(arg_list); arg_list = NULL; } -#line 1641 "command.c" /* yacc.c:1645 */ +#line 1651 "command.c" /* yacc.c:1652 */ break; case 25: -#line 245 "command.y" /* yacc.c:1645 */ - { (yyval) = append_statement((yyvsp[-1]), lexptr_begin); } -#line 1647 "command.c" /* yacc.c:1645 */ +#line 245 "command.y" /* yacc.c:1652 */ + { yyval = append_statement(yyvsp[-1], lexptr_begin); } +#line 1657 "command.c" /* yacc.c:1652 */ break; case 26: -#line 246 "command.y" /* yacc.c:1645 */ +#line 246 "command.y" /* yacc.c:1652 */ { - (yyval) = (yyvsp[-1]); + yyval = yyvsp[-1]; } -#line 1655 "command.c" /* yacc.c:1645 */ +#line 1665 "command.c" /* yacc.c:1652 */ break; case 27: -#line 253 "command.y" /* yacc.c:1645 */ +#line 253 "command.y" /* yacc.c:1652 */ { - arg_list = append_statement((yyvsp[-1]), (char *) end_EVAL); + arg_list = append_statement(yyvsp[-1], (char *) end_EVAL); if (read_a_line == read_commands_string) { /* unserializing 'eval' in 'commands' */ char *str = arg_list->a_string; size_t len = strlen(str); @@ -1671,120 +1681,120 @@ yyreduce: cmd_idx = find_command("eval", 4); in_eval = false; } -#line 1675 "command.c" /* yacc.c:1645 */ +#line 1685 "command.c" /* yacc.c:1652 */ break; case 28: -#line 269 "command.y" /* yacc.c:1645 */ +#line 269 "command.y" /* yacc.c:1652 */ { NODE *n; CMDARG *arg; - n = (yyvsp[0])->a_node; + n = yyvsp[0]->a_node; arg = append_statement(NULL, (char *) start_EVAL); (void) append_statement(arg, n->stptr); (void) append_statement(arg, (char *) end_EVAL); free_cmdarg(arg_list); arg_list = arg; } -#line 1690 "command.c" /* yacc.c:1645 */ +#line 1700 "command.c" /* yacc.c:1652 */ break; case 34: -#line 288 "command.y" /* yacc.c:1645 */ +#line 288 "command.y" /* yacc.c:1652 */ { if (cmdtab[cmd_idx].class == D_FRAME - && (yyvsp[0]) != NULL && (yyvsp[0])->a_int < 0) - yyerror(_("invalid frame number: %d"), (yyvsp[0])->a_int); + && yyvsp[0] != NULL && yyvsp[0]->a_int < 0) + yyerror(_("invalid frame number: %d"), yyvsp[0]->a_int); } -#line 1700 "command.c" /* yacc.c:1645 */ +#line 1710 "command.c" /* yacc.c:1652 */ break; case 35: -#line 294 "command.y" /* yacc.c:1645 */ +#line 294 "command.y" /* yacc.c:1652 */ { - int idx = find_argument((yyvsp[0])); + int idx = find_argument(yyvsp[0]); if (idx < 0) - yyerror(_("info: invalid option - \"%s\""), (yyvsp[0])->a_string); + yyerror(_("info: invalid option - \"%s\""), yyvsp[0]->a_string); else { - efree((yyvsp[0])->a_string); - (yyvsp[0])->a_string = NULL; - (yyvsp[0])->type = D_argument; - (yyvsp[0])->a_argument = argtab[idx].value; + efree(yyvsp[0]->a_string); + yyvsp[0]->a_string = NULL; + yyvsp[0]->type = D_argument; + yyvsp[0]->a_argument = argtab[idx].value; } } -#line 1716 "command.c" /* yacc.c:1645 */ +#line 1726 "command.c" /* yacc.c:1652 */ break; case 38: -#line 307 "command.y" /* yacc.c:1645 */ +#line 307 "command.y" /* yacc.c:1652 */ { want_nodeval = true; } -#line 1722 "command.c" /* yacc.c:1645 */ +#line 1732 "command.c" /* yacc.c:1652 */ break; case 40: -#line 308 "command.y" /* yacc.c:1645 */ +#line 308 "command.y" /* yacc.c:1652 */ { want_nodeval = true; } -#line 1728 "command.c" /* yacc.c:1645 */ +#line 1738 "command.c" /* yacc.c:1652 */ break; case 46: -#line 313 "command.y" /* yacc.c:1645 */ +#line 313 "command.y" /* yacc.c:1652 */ { want_nodeval = true; } -#line 1734 "command.c" /* yacc.c:1645 */ +#line 1744 "command.c" /* yacc.c:1652 */ break; case 49: -#line 315 "command.y" /* yacc.c:1645 */ +#line 315 "command.y" /* yacc.c:1652 */ { want_nodeval = true; } -#line 1740 "command.c" /* yacc.c:1645 */ +#line 1750 "command.c" /* yacc.c:1652 */ break; case 51: -#line 316 "command.y" /* yacc.c:1645 */ +#line 316 "command.y" /* yacc.c:1652 */ { want_nodeval = true; } -#line 1746 "command.c" /* yacc.c:1645 */ +#line 1756 "command.c" /* yacc.c:1652 */ break; case 53: -#line 317 "command.y" /* yacc.c:1645 */ +#line 317 "command.y" /* yacc.c:1652 */ { want_nodeval = true; } -#line 1752 "command.c" /* yacc.c:1645 */ +#line 1762 "command.c" /* yacc.c:1652 */ break; case 57: -#line 321 "command.y" /* yacc.c:1645 */ +#line 321 "command.y" /* yacc.c:1652 */ { - if (in_cmd_src((yyvsp[0])->a_string)) - yyerror(_("source \"%s\": already sourced."), (yyvsp[0])->a_string); + if (in_cmd_src(yyvsp[0]->a_string)) + yyerror(_("source \"%s\": already sourced."), yyvsp[0]->a_string); } -#line 1761 "command.c" /* yacc.c:1645 */ +#line 1771 "command.c" /* yacc.c:1652 */ break; case 58: -#line 326 "command.y" /* yacc.c:1645 */ +#line 326 "command.y" /* yacc.c:1652 */ { if (! input_from_tty) - yyerror(_("save \"%s\": command not permitted."), (yyvsp[0])->a_string); + yyerror(_("save \"%s\": command not permitted."), yyvsp[0]->a_string); } -#line 1770 "command.c" /* yacc.c:1645 */ +#line 1780 "command.c" /* yacc.c:1652 */ break; case 59: -#line 331 "command.y" /* yacc.c:1645 */ +#line 331 "command.y" /* yacc.c:1652 */ { int type = 0; int num; - if ((yyvsp[0]) != NULL) - num = (yyvsp[0])->a_int; + if (yyvsp[0] != NULL) + num = yyvsp[0]->a_int; if (errcount != 0) ; else if (in_commands) yyerror(_("Can't use command `commands' for breakpoint/watchpoint commands")); - else if ((yyvsp[0]) == NULL && ! (type = has_break_or_watch_point(&num, true))) + else if (yyvsp[0] == NULL && ! (type = has_break_or_watch_point(&num, true))) yyerror(_("no breakpoint/watchpoint has been set yet")); - else if ((yyvsp[0]) != NULL && ! (type = has_break_or_watch_point(&num, false))) + else if (yyvsp[0] != NULL && ! (type = has_break_or_watch_point(&num, false))) yyerror(_("invalid breakpoint/watchpoint number")); if (type) { in_commands = true; @@ -1796,11 +1806,11 @@ yyreduce: } } } -#line 1800 "command.c" /* yacc.c:1645 */ +#line 1810 "command.c" /* yacc.c:1652 */ break; case 60: -#line 357 "command.y" /* yacc.c:1645 */ +#line 357 "command.y" /* yacc.c:1652 */ { if (! in_commands) yyerror(_("`end' valid only in command `commands' or `eval'")); @@ -1810,54 +1820,54 @@ yyreduce: in_commands = false; } } -#line 1814 "command.c" /* yacc.c:1645 */ +#line 1824 "command.c" /* yacc.c:1652 */ break; case 61: -#line 367 "command.y" /* yacc.c:1645 */ +#line 367 "command.y" /* yacc.c:1652 */ { if (! in_commands) yyerror(_("`silent' valid only in command `commands'")); } -#line 1823 "command.c" /* yacc.c:1645 */ +#line 1833 "command.c" /* yacc.c:1652 */ break; case 62: -#line 372 "command.y" /* yacc.c:1645 */ +#line 372 "command.y" /* yacc.c:1652 */ { - int idx = find_argument((yyvsp[0])); + int idx = find_argument(yyvsp[0]); if (idx < 0) - yyerror(_("trace: invalid option - \"%s\""), (yyvsp[0])->a_string); + yyerror(_("trace: invalid option - \"%s\""), yyvsp[0]->a_string); else { - efree((yyvsp[0])->a_string); - (yyvsp[0])->a_string = NULL; - (yyvsp[0])->type = D_argument; - (yyvsp[0])->a_argument = argtab[idx].value; + efree(yyvsp[0]->a_string); + yyvsp[0]->a_string = NULL; + yyvsp[0]->type = D_argument; + yyvsp[0]->a_argument = argtab[idx].value; } } -#line 1839 "command.c" /* yacc.c:1645 */ +#line 1849 "command.c" /* yacc.c:1652 */ break; case 63: -#line 383 "command.y" /* yacc.c:1645 */ +#line 383 "command.y" /* yacc.c:1652 */ { want_nodeval = true; } -#line 1845 "command.c" /* yacc.c:1645 */ +#line 1855 "command.c" /* yacc.c:1652 */ break; case 64: -#line 384 "command.y" /* yacc.c:1645 */ +#line 384 "command.y" /* yacc.c:1652 */ { int type; - int num = (yyvsp[-2])->a_int; + int num = yyvsp[-2]->a_int; type = has_break_or_watch_point(&num, false); if (! type) yyerror(_("condition: invalid breakpoint/watchpoint number")); } -#line 1857 "command.c" /* yacc.c:1645 */ +#line 1867 "command.c" /* yacc.c:1652 */ break; case 65: -#line 392 "command.y" /* yacc.c:1645 */ +#line 392 "command.y" /* yacc.c:1652 */ { if (in_commands) { /* Prepend command 'eval' to argument list */ @@ -1868,387 +1878,387 @@ yyreduce: arg_list = arg; } } -#line 1872 "command.c" /* yacc.c:1645 */ +#line 1882 "command.c" /* yacc.c:1652 */ break; case 66: -#line 406 "command.y" /* yacc.c:1645 */ +#line 406 "command.y" /* yacc.c:1652 */ { - if ((yyvsp[0]) != NULL) { - NODE *n = (yyvsp[0])->a_node; - (yyvsp[0])->type = D_string; - (yyvsp[0])->a_string = n->stptr; + if (yyvsp[0] != NULL) { + NODE *n = yyvsp[0]->a_node; + yyvsp[0]->type = D_string; + yyvsp[0]->a_string = n->stptr; freenode(n); } - (yyval) = (yyvsp[0]); + yyval = yyvsp[0]; } -#line 1886 "command.c" /* yacc.c:1645 */ +#line 1896 "command.c" /* yacc.c:1652 */ break; case 68: -#line 420 "command.y" /* yacc.c:1645 */ - { (yyval) = NULL; } -#line 1892 "command.c" /* yacc.c:1645 */ +#line 420 "command.y" /* yacc.c:1652 */ + { yyval = NULL; } +#line 1902 "command.c" /* yacc.c:1652 */ break; case 69: -#line 425 "command.y" /* yacc.c:1645 */ - { (yyval) = NULL; } -#line 1898 "command.c" /* yacc.c:1645 */ +#line 425 "command.y" /* yacc.c:1652 */ + { yyval = NULL; } +#line 1908 "command.c" /* yacc.c:1652 */ break; case 74: -#line 434 "command.y" /* yacc.c:1645 */ - { (yyval) = NULL; } -#line 1904 "command.c" /* yacc.c:1645 */ +#line 434 "command.y" /* yacc.c:1652 */ + { yyval = NULL; } +#line 1914 "command.c" /* yacc.c:1652 */ break; case 75: -#line 439 "command.y" /* yacc.c:1645 */ - { (yyval) = NULL; } -#line 1910 "command.c" /* yacc.c:1645 */ +#line 439 "command.y" /* yacc.c:1652 */ + { yyval = NULL; } +#line 1920 "command.c" /* yacc.c:1652 */ break; case 77: -#line 442 "command.y" /* yacc.c:1645 */ - { (yyval) = NULL; } -#line 1916 "command.c" /* yacc.c:1645 */ +#line 442 "command.y" /* yacc.c:1652 */ + { yyval = NULL; } +#line 1926 "command.c" /* yacc.c:1652 */ break; case 78: -#line 447 "command.y" /* yacc.c:1645 */ +#line 447 "command.y" /* yacc.c:1652 */ { NODE *n; - n = (yyvsp[0])->a_node; + n = yyvsp[0]->a_node; if ((n->flags & STRING) == 0) yyerror(_("argument not a string")); } -#line 1927 "command.c" /* yacc.c:1645 */ +#line 1937 "command.c" /* yacc.c:1652 */ break; case 79: -#line 457 "command.y" /* yacc.c:1645 */ - { (yyval) = NULL; } -#line 1933 "command.c" /* yacc.c:1645 */ +#line 457 "command.y" /* yacc.c:1652 */ + { yyval = NULL; } +#line 1943 "command.c" /* yacc.c:1652 */ break; case 80: -#line 459 "command.y" /* yacc.c:1645 */ +#line 459 "command.y" /* yacc.c:1652 */ { - if (find_option((yyvsp[0])->a_string) < 0) - yyerror(_("option: invalid parameter - \"%s\""), (yyvsp[0])->a_string); + if (find_option(yyvsp[0]->a_string) < 0) + yyerror(_("option: invalid parameter - \"%s\""), yyvsp[0]->a_string); } -#line 1942 "command.c" /* yacc.c:1645 */ +#line 1952 "command.c" /* yacc.c:1652 */ break; case 81: -#line 464 "command.y" /* yacc.c:1645 */ +#line 464 "command.y" /* yacc.c:1652 */ { - if (find_option((yyvsp[-2])->a_string) < 0) - yyerror(_("option: invalid parameter - \"%s\""), (yyvsp[-2])->a_string); + if (find_option(yyvsp[-2]->a_string) < 0) + yyerror(_("option: invalid parameter - \"%s\""), yyvsp[-2]->a_string); } -#line 1951 "command.c" /* yacc.c:1645 */ +#line 1961 "command.c" /* yacc.c:1652 */ break; case 82: -#line 472 "command.y" /* yacc.c:1645 */ +#line 472 "command.y" /* yacc.c:1652 */ { NODE *n; - n = lookup((yyvsp[0])->a_string); + n = lookup(yyvsp[0]->a_string); if (n == NULL || n->type != Node_func) - yyerror(_("no such function - \"%s\""), (yyvsp[0])->a_string); + yyerror(_("no such function - \"%s\""), yyvsp[0]->a_string); else { - (yyvsp[0])->type = D_func; - efree((yyvsp[0])->a_string); - (yyvsp[0])->a_string = NULL; - (yyvsp[0])->a_node = n; + yyvsp[0]->type = D_func; + efree(yyvsp[0]->a_string); + yyvsp[0]->a_string = NULL; + yyvsp[0]->a_node = n; } } -#line 1968 "command.c" /* yacc.c:1645 */ +#line 1978 "command.c" /* yacc.c:1652 */ break; case 83: -#line 488 "command.y" /* yacc.c:1645 */ - { (yyval) = NULL; } -#line 1974 "command.c" /* yacc.c:1645 */ +#line 488 "command.y" /* yacc.c:1652 */ + { yyval = NULL; } +#line 1984 "command.c" /* yacc.c:1652 */ break; case 88: -#line 497 "command.y" /* yacc.c:1645 */ - { (yyval) = NULL; } -#line 1980 "command.c" /* yacc.c:1645 */ +#line 497 "command.y" /* yacc.c:1652 */ + { yyval = NULL; } +#line 1990 "command.c" /* yacc.c:1652 */ break; case 89: -#line 498 "command.y" /* yacc.c:1645 */ +#line 498 "command.y" /* yacc.c:1652 */ { want_nodeval = true; } -#line 1986 "command.c" /* yacc.c:1645 */ +#line 1996 "command.c" /* yacc.c:1652 */ break; case 92: -#line 500 "command.y" /* yacc.c:1645 */ +#line 500 "command.y" /* yacc.c:1652 */ { want_nodeval = true; } -#line 1992 "command.c" /* yacc.c:1645 */ +#line 2002 "command.c" /* yacc.c:1652 */ break; case 95: -#line 506 "command.y" /* yacc.c:1645 */ - { (yyval) = NULL; } -#line 1998 "command.c" /* yacc.c:1645 */ +#line 506 "command.y" /* yacc.c:1652 */ + { yyval = NULL; } +#line 2008 "command.c" /* yacc.c:1652 */ break; case 97: -#line 512 "command.y" /* yacc.c:1645 */ - { (yyval) = NULL; } -#line 2004 "command.c" /* yacc.c:1645 */ +#line 512 "command.y" /* yacc.c:1652 */ + { yyval = NULL; } +#line 2014 "command.c" /* yacc.c:1652 */ break; case 99: -#line 518 "command.y" /* yacc.c:1645 */ - { (yyval) = NULL; } -#line 2010 "command.c" /* yacc.c:1645 */ +#line 518 "command.y" /* yacc.c:1652 */ + { yyval = NULL; } +#line 2020 "command.c" /* yacc.c:1652 */ break; case 104: -#line 530 "command.y" /* yacc.c:1645 */ +#line 530 "command.y" /* yacc.c:1652 */ { - int idx = find_argument((yyvsp[-1])); + int idx = find_argument(yyvsp[-1]); if (idx < 0) - yyerror(_("enable: invalid option - \"%s\""), (yyvsp[-1])->a_string); + yyerror(_("enable: invalid option - \"%s\""), yyvsp[-1]->a_string); else { - efree((yyvsp[-1])->a_string); - (yyvsp[-1])->a_string = NULL; - (yyvsp[-1])->type = D_argument; - (yyvsp[-1])->a_argument = argtab[idx].value; + efree(yyvsp[-1]->a_string); + yyvsp[-1]->a_string = NULL; + yyvsp[-1]->type = D_argument; + yyvsp[-1]->a_argument = argtab[idx].value; } } -#line 2026 "command.c" /* yacc.c:1645 */ +#line 2036 "command.c" /* yacc.c:1652 */ break; case 106: -#line 546 "command.y" /* yacc.c:1645 */ +#line 546 "command.y" /* yacc.c:1652 */ { - (yyvsp[0])->type = D_array; /* dump all items */ - (yyvsp[0])->a_count = 0; + yyvsp[0]->type = D_array; /* dump all items */ + yyvsp[0]->a_count = 0; } -#line 2035 "command.c" /* yacc.c:1645 */ +#line 2045 "command.c" /* yacc.c:1652 */ break; case 107: -#line 551 "command.y" /* yacc.c:1645 */ +#line 551 "command.y" /* yacc.c:1652 */ { - (yyvsp[-1])->type = D_array; - (yyvsp[-1])->a_count = num_dim; + yyvsp[-1]->type = D_array; + yyvsp[-1]->a_count = num_dim; } -#line 2044 "command.c" /* yacc.c:1645 */ +#line 2054 "command.c" /* yacc.c:1652 */ break; case 117: -#line 577 "command.y" /* yacc.c:1645 */ - { (yyval) = NULL; } -#line 2050 "command.c" /* yacc.c:1645 */ +#line 577 "command.y" /* yacc.c:1652 */ + { yyval = NULL; } +#line 2060 "command.c" /* yacc.c:1652 */ break; case 118: -#line 579 "command.y" /* yacc.c:1645 */ - { (yyval) = NULL; } -#line 2056 "command.c" /* yacc.c:1645 */ +#line 579 "command.y" /* yacc.c:1652 */ + { yyval = NULL; } +#line 2066 "command.c" /* yacc.c:1652 */ break; case 119: -#line 581 "command.y" /* yacc.c:1645 */ +#line 581 "command.y" /* yacc.c:1652 */ { CMDARG *a; a = mk_cmdarg(D_int); a->a_int = -1; append_cmdarg(a); } -#line 2067 "command.c" /* yacc.c:1645 */ +#line 2077 "command.c" /* yacc.c:1652 */ break; case 126: -#line 597 "command.y" /* yacc.c:1645 */ +#line 597 "command.y" /* yacc.c:1652 */ { - if ((yyvsp[-2])->a_int > (yyvsp[0])->a_int) + if (yyvsp[-2]->a_int > yyvsp[0]->a_int) yyerror(_("invalid range specification: %d - %d"), - (yyvsp[-2])->a_int, (yyvsp[0])->a_int); + yyvsp[-2]->a_int, yyvsp[0]->a_int); else - (yyvsp[-2])->type = D_range; - (yyval) = (yyvsp[-2]); + yyvsp[-2]->type = D_range; + yyval = yyvsp[-2]; } -#line 2080 "command.c" /* yacc.c:1645 */ +#line 2090 "command.c" /* yacc.c:1652 */ break; case 127: -#line 609 "command.y" /* yacc.c:1645 */ - { (yyval) = NULL; } -#line 2086 "command.c" /* yacc.c:1645 */ +#line 609 "command.y" /* yacc.c:1652 */ + { yyval = NULL; } +#line 2096 "command.c" /* yacc.c:1652 */ break; case 134: -#line 623 "command.y" /* yacc.c:1645 */ - { (yyval) = (yyvsp[0]); } -#line 2092 "command.c" /* yacc.c:1645 */ +#line 623 "command.y" /* yacc.c:1652 */ + { yyval = yyvsp[0]; } +#line 2102 "command.c" /* yacc.c:1652 */ break; case 135: -#line 625 "command.y" /* yacc.c:1645 */ - { (yyval) = (yyvsp[-2]); } -#line 2098 "command.c" /* yacc.c:1645 */ +#line 625 "command.y" /* yacc.c:1652 */ + { yyval = yyvsp[-2]; } +#line 2108 "command.c" /* yacc.c:1652 */ break; case 137: -#line 631 "command.y" /* yacc.c:1645 */ +#line 631 "command.y" /* yacc.c:1652 */ { CMDARG *a; NODE *subs; int count = 0; - for (a = (yyvsp[-1]); a != NULL; a = a->next) + for (a = yyvsp[-1]; a != NULL; a = a->next) count++; - subs = concat_args((yyvsp[-1]), count); - free_cmdarg((yyvsp[-1])->next); - (yyvsp[-1])->next = NULL; - (yyvsp[-1])->type = D_node; - (yyvsp[-1])->a_node = subs; - (yyval) = (yyvsp[-1]); + subs = concat_args(yyvsp[-1], count); + free_cmdarg(yyvsp[-1]->next); + yyvsp[-1]->next = NULL; + yyvsp[-1]->type = D_node; + yyvsp[-1]->a_node = subs; + yyval = yyvsp[-1]; } -#line 2117 "command.c" /* yacc.c:1645 */ +#line 2127 "command.c" /* yacc.c:1652 */ break; case 139: -#line 650 "command.y" /* yacc.c:1645 */ - { (yyval) = (yyvsp[0]); num_dim = 1; } -#line 2123 "command.c" /* yacc.c:1645 */ +#line 650 "command.y" /* yacc.c:1652 */ + { yyval = yyvsp[0]; num_dim = 1; } +#line 2133 "command.c" /* yacc.c:1652 */ break; case 140: -#line 652 "command.y" /* yacc.c:1645 */ - { (yyval) = (yyvsp[-1]); num_dim++; } -#line 2129 "command.c" /* yacc.c:1645 */ +#line 652 "command.y" /* yacc.c:1652 */ + { yyval = yyvsp[-1]; num_dim++; } +#line 2139 "command.c" /* yacc.c:1652 */ break; case 142: -#line 658 "command.y" /* yacc.c:1645 */ +#line 658 "command.y" /* yacc.c:1652 */ { - NODE *n = (yyvsp[0])->a_node; + NODE *n = yyvsp[0]->a_node; if ((n->flags & NUMBER) == 0) yyerror(_("non-numeric value for field number")); else - (yyvsp[0])->type = D_field; - (yyval) = (yyvsp[0]); + yyvsp[0]->type = D_field; + yyval = yyvsp[0]; } -#line 2142 "command.c" /* yacc.c:1645 */ +#line 2152 "command.c" /* yacc.c:1652 */ break; case 143: -#line 667 "command.y" /* yacc.c:1645 */ +#line 667 "command.y" /* yacc.c:1652 */ { /* a_string is array name, a_count is dimension count */ - (yyvsp[-1])->type = D_subscript; - (yyvsp[-1])->a_count = num_dim; - (yyval) = (yyvsp[-1]); + yyvsp[-1]->type = D_subscript; + yyvsp[-1]->a_count = num_dim; + yyval = yyvsp[-1]; } -#line 2153 "command.c" /* yacc.c:1645 */ +#line 2163 "command.c" /* yacc.c:1652 */ break; case 144: -#line 677 "command.y" /* yacc.c:1645 */ - { (yyval) = (yyvsp[0]); } -#line 2159 "command.c" /* yacc.c:1645 */ +#line 677 "command.y" /* yacc.c:1652 */ + { yyval = yyvsp[0]; } +#line 2169 "command.c" /* yacc.c:1652 */ break; case 145: -#line 679 "command.y" /* yacc.c:1645 */ +#line 679 "command.y" /* yacc.c:1652 */ { - NODE *n = (yyvsp[0])->a_node; + NODE *n = yyvsp[0]->a_node; if ((n->flags & NUMBER) == 0) yyerror(_("non-numeric value found, numeric expected")); - (yyval) = (yyvsp[0]); + yyval = yyvsp[0]; } -#line 2170 "command.c" /* yacc.c:1645 */ +#line 2180 "command.c" /* yacc.c:1652 */ break; case 146: -#line 686 "command.y" /* yacc.c:1645 */ +#line 686 "command.y" /* yacc.c:1652 */ { - NODE *n = (yyvsp[0])->a_node; + NODE *n = yyvsp[0]->a_node; if ((n->flags & NUMBER) == 0) yyerror(_("non-numeric value found, numeric expected")); else negate_num(n); - (yyval) = (yyvsp[0]); + yyval = yyvsp[0]; } -#line 2183 "command.c" /* yacc.c:1645 */ +#line 2193 "command.c" /* yacc.c:1652 */ break; case 147: -#line 698 "command.y" /* yacc.c:1645 */ - { (yyval) = NULL; } -#line 2189 "command.c" /* yacc.c:1645 */ +#line 698 "command.y" /* yacc.c:1652 */ + { yyval = NULL; } +#line 2199 "command.c" /* yacc.c:1652 */ break; case 148: -#line 700 "command.y" /* yacc.c:1645 */ - { (yyval) = (yyvsp[0]); } -#line 2195 "command.c" /* yacc.c:1645 */ +#line 700 "command.y" /* yacc.c:1652 */ + { yyval = yyvsp[0]; } +#line 2205 "command.c" /* yacc.c:1652 */ break; case 149: -#line 705 "command.y" /* yacc.c:1645 */ - { (yyval) = NULL; } -#line 2201 "command.c" /* yacc.c:1645 */ +#line 705 "command.y" /* yacc.c:1652 */ + { yyval = NULL; } +#line 2211 "command.c" /* yacc.c:1652 */ break; case 150: -#line 707 "command.y" /* yacc.c:1645 */ - { (yyval) = (yyvsp[0]); } -#line 2207 "command.c" /* yacc.c:1645 */ +#line 707 "command.y" /* yacc.c:1652 */ + { yyval = yyvsp[0]; } +#line 2217 "command.c" /* yacc.c:1652 */ break; case 151: -#line 712 "command.y" /* yacc.c:1645 */ +#line 712 "command.y" /* yacc.c:1652 */ { - if ((yyvsp[0])->a_int == 0) + if (yyvsp[0]->a_int == 0) yyerror(_("non-zero integer value")); - (yyval) = (yyvsp[0]); + yyval = yyvsp[0]; } -#line 2217 "command.c" /* yacc.c:1645 */ +#line 2227 "command.c" /* yacc.c:1652 */ break; case 152: -#line 718 "command.y" /* yacc.c:1645 */ +#line 718 "command.y" /* yacc.c:1652 */ { - if ((yyvsp[0])->a_int == 0) + if (yyvsp[0]->a_int == 0) yyerror(_("non-zero integer value")); - (yyval) = (yyvsp[0]); + yyval = yyvsp[0]; } -#line 2227 "command.c" /* yacc.c:1645 */ +#line 2237 "command.c" /* yacc.c:1652 */ break; case 153: -#line 727 "command.y" /* yacc.c:1645 */ - { (yyval) = (yyvsp[0]); } -#line 2233 "command.c" /* yacc.c:1645 */ +#line 727 "command.y" /* yacc.c:1652 */ + { yyval = yyvsp[0]; } +#line 2243 "command.c" /* yacc.c:1652 */ break; case 154: -#line 729 "command.y" /* yacc.c:1645 */ - { (yyval) = (yyvsp[0]); } -#line 2239 "command.c" /* yacc.c:1645 */ +#line 729 "command.y" /* yacc.c:1652 */ + { yyval = yyvsp[0]; } +#line 2249 "command.c" /* yacc.c:1652 */ break; case 155: -#line 731 "command.y" /* yacc.c:1645 */ +#line 731 "command.y" /* yacc.c:1652 */ { - (yyvsp[0])->a_int = - (yyvsp[0])->a_int; - (yyval) = (yyvsp[0]); + yyvsp[0]->a_int = - yyvsp[0]->a_int; + yyval = yyvsp[0]; } -#line 2248 "command.c" /* yacc.c:1645 */ +#line 2258 "command.c" /* yacc.c:1652 */ break; case 156: -#line 739 "command.y" /* yacc.c:1645 */ +#line 739 "command.y" /* yacc.c:1652 */ { if (lexptr_begin != NULL) { if (input_from_tty && lexptr_begin[0] != '\0') @@ -2257,11 +2267,11 @@ yyreduce: lexptr_begin = NULL; } } -#line 2261 "command.c" /* yacc.c:1645 */ +#line 2271 "command.c" /* yacc.c:1652 */ break; -#line 2265 "command.c" /* yacc.c:1645 */ +#line 2275 "command.c" /* yacc.c:1652 */ default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -2375,12 +2385,10 @@ yyerrlab: | yyerrorlab -- error raised explicitly by YYERROR. | `---------------------------------------------------*/ yyerrorlab: - - /* Pacify compilers like GCC when the user code never invokes - YYERROR and the label yyerrorlab therefore never appears in user - code. */ - if (/*CONSTCOND*/ 0) - goto yyerrorlab; + /* Pacify compilers when the user code never invokes YYERROR and the + label yyerrorlab therefore never appears in user code. */ + if (0) + YYERROR; /* Do not reclaim the symbols of the rule whose action triggered this YYERROR. */ @@ -2442,6 +2450,7 @@ yyacceptlab: yyresult = 0; goto yyreturn; + /*-----------------------------------. | yyabortlab -- YYABORT comes here. | `-----------------------------------*/ @@ -2449,6 +2458,7 @@ yyabortlab: yyresult = 1; goto yyreturn; + #if !defined yyoverflow || YYERROR_VERBOSE /*-------------------------------------------------. | yyexhaustedlab -- memory exhaustion comes here. | @@ -2459,6 +2469,10 @@ yyexhaustedlab: /* Fall through. */ #endif + +/*-----------------------------------------------------. +| yyreturn -- parsing is finished, return the result. | +`-----------------------------------------------------*/ yyreturn: if (yychar != YYEMPTY) { @@ -2488,7 +2502,7 @@ yyreturn: #endif return yyresult; } -#line 749 "command.y" /* yacc.c:1903 */ +#line 749 "command.y" /* yacc.c:1918 */ |