aboutsummaryrefslogtreecommitdiffstats
path: root/command.c
diff options
context:
space:
mode:
Diffstat (limited to 'command.c')
-rw-r--r--command.c344
1 files changed, 166 insertions, 178 deletions
diff --git a/command.c b/command.c
index 0e966475..abfd6570 100644
--- a/command.c
+++ b/command.c
@@ -1,4 +1,4 @@
-/* A Bison parser, made by GNU Bison 3.6.3. */
+/* A Bison parser, made by GNU Bison 3.7. */
/* Bison implementation for Yacc-like parsers in C
@@ -49,7 +49,7 @@
#define YYBISON 1
/* Bison version. */
-#define YYBISON_VERSION "3.6.3"
+#define YYBISON_VERSION "3.7"
/* Skeleton name. */
#define YYSKELETON_NAME "yacc.c"
@@ -733,6 +733,7 @@ union yyalloc
/* YYNSTATES -- Number of states. */
#define YYNSTATES 203
+/* YYMAXUTOK -- Last valid token kind. */
#define YYMAXUTOK 303
@@ -1276,7 +1277,7 @@ yydestruct (const char *yymsg,
}
-/* The lookahead symbol. */
+/* Lookahead token kind. */
int yychar;
/* The semantic value of the lookahead symbol. */
@@ -1294,34 +1295,30 @@ int yynerrs;
int
yyparse (void)
{
- yy_state_fast_t yystate;
+ yy_state_fast_t yystate = 0;
/* Number of tokens to shift before error messages enabled. */
- int yyerrstatus;
+ int yyerrstatus = 0;
- /* The stacks and their tools:
- 'yyss': related to states.
- 'yyvs': related to semantic values.
-
- Refer to the stacks through separate pointers, to allow yyoverflow
+ /* Refer to the stacks through separate pointers, to allow yyoverflow
to reallocate them elsewhere. */
/* Their size. */
- YYPTRDIFF_T yystacksize;
+ YYPTRDIFF_T yystacksize = YYINITDEPTH;
- /* The state stack. */
+ /* The state stack: array, bottom, top. */
yy_state_t yyssa[YYINITDEPTH];
- yy_state_t *yyss;
- yy_state_t *yyssp;
+ yy_state_t *yyss = yyssa;
+ yy_state_t *yyssp = yyss;
- /* The semantic value stack. */
+ /* The semantic value stack: array, bottom, top. */
YYSTYPE yyvsa[YYINITDEPTH];
- YYSTYPE *yyvs;
- YYSTYPE *yyvsp;
+ YYSTYPE *yyvs = yyvsa;
+ YYSTYPE *yyvsp = yyvs;
int yyn;
/* The return value of yyparse. */
int yyresult;
- /* Lookahead token as an internal (translated) token number. */
+ /* Lookahead symbol kind. */
yysymbol_kind_t yytoken = YYSYMBOL_YYEMPTY;
/* The variables used to return semantic value and location from the
action routines. */
@@ -1335,15 +1332,6 @@ yyparse (void)
Keep to zero when no symbol should be popped. */
int yylen = 0;
- yynerrs = 0;
- yystate = 0;
- yyerrstatus = 0;
-
- yystacksize = YYINITDEPTH;
- yyssp = yyss = yyssa;
- yyvsp = yyvs = yyvsa;
-
-
YYDPRINTF ((stderr, "Starting parse\n"));
yychar = YYEMPTY; /* Cause a token to be read. */
@@ -1544,7 +1532,7 @@ yyreduce:
YY_REDUCE_PRINT (yyn);
switch (yyn)
{
- case 3:
+ case 3: /* input: input line */
#line 111 "command.y"
{
cmd_idx = -1;
@@ -1560,10 +1548,10 @@ yyreduce:
arg_list = NULL;
}
}
-#line 1564 "command.c"
+#line 1552 "command.c"
break;
- case 5:
+ case 5: /* line: command nls */
#line 130 "command.y"
{
if (dbg_errcount == 0 && cmd_idx >= 0) {
@@ -1614,24 +1602,24 @@ yyreduce:
YYACCEPT;
}
}
-#line 1618 "command.c"
+#line 1606 "command.c"
break;
- case 6:
+ case 6: /* line: error nls */
#line 180 "command.y"
{
yyerrok;
}
-#line 1626 "command.c"
+#line 1614 "command.c"
break;
- case 22:
+ case 22: /* set_want_nodeval: %empty */
#line 214 "command.y"
{ want_nodeval = true; }
-#line 1632 "command.c"
+#line 1620 "command.c"
break;
- case 23:
+ case 23: /* eval_prologue: D_EVAL set_want_nodeval opt_param_list nls */
#line 219 "command.y"
{
if (dbg_errcount == 0) {
@@ -1648,10 +1636,10 @@ yyreduce:
in_eval = true;
}
}
-#line 1652 "command.c"
+#line 1640 "command.c"
break;
- case 24:
+ case 24: /* statement_list: %empty */
#line 238 "command.y"
{
yyval = append_statement(arg_list, (char *) start_EVAL);
@@ -1660,24 +1648,24 @@ yyreduce:
free_cmdarg(arg_list);
arg_list = NULL;
}
-#line 1664 "command.c"
+#line 1652 "command.c"
break;
- case 25:
+ case 25: /* @1: %empty */
#line 245 "command.y"
{ yyval = append_statement(yyvsp[-1], lexptr_begin); }
-#line 1670 "command.c"
+#line 1658 "command.c"
break;
- case 26:
+ case 26: /* statement_list: statement_list D_STATEMENT @1 nls */
#line 246 "command.y"
{
yyval = yyvsp[-1];
}
-#line 1678 "command.c"
+#line 1666 "command.c"
break;
- case 27:
+ case 27: /* eval_cmd: eval_prologue statement_list D_END */
#line 253 "command.y"
{
arg_list = append_statement(yyvsp[-1], (char *) end_EVAL);
@@ -1694,10 +1682,10 @@ yyreduce:
cmd_idx = find_command("eval", 4);
in_eval = false;
}
-#line 1698 "command.c"
+#line 1686 "command.c"
break;
- case 28:
+ case 28: /* eval_cmd: D_EVAL set_want_nodeval string_node */
#line 269 "command.y"
{
NODE *n;
@@ -1709,20 +1697,20 @@ yyreduce:
free_cmdarg(arg_list);
arg_list = arg;
}
-#line 1713 "command.c"
+#line 1701 "command.c"
break;
- case 34:
+ case 34: /* command: frame_cmd opt_integer */
#line 288 "command.y"
{
if (cmdtab[cmd_idx].class == D_FRAME
&& yyvsp[0] != NULL && yyvsp[0]->a_int < 0)
yyerror(_("invalid frame number: %d"), yyvsp[0]->a_int);
}
-#line 1723 "command.c"
+#line 1711 "command.c"
break;
- case 35:
+ case 35: /* command: D_INFO D_STRING */
#line 294 "command.y"
{
int idx = find_argument(yyvsp[0]);
@@ -1735,64 +1723,64 @@ yyreduce:
yyvsp[0]->a_argument = argtab[idx].value;
}
}
-#line 1739 "command.c"
+#line 1727 "command.c"
break;
- case 38:
+ case 38: /* $@2: %empty */
#line 307 "command.y"
{ want_nodeval = true; }
-#line 1745 "command.c"
+#line 1733 "command.c"
break;
- case 40:
+ case 40: /* $@3: %empty */
#line 308 "command.y"
{ want_nodeval = true; }
-#line 1751 "command.c"
+#line 1739 "command.c"
break;
- case 46:
+ case 46: /* $@4: %empty */
#line 313 "command.y"
{ want_nodeval = true; }
-#line 1757 "command.c"
+#line 1745 "command.c"
break;
- case 49:
+ case 49: /* $@5: %empty */
#line 315 "command.y"
{ want_nodeval = true; }
-#line 1763 "command.c"
+#line 1751 "command.c"
break;
- case 51:
+ case 51: /* $@6: %empty */
#line 316 "command.y"
{ want_nodeval = true; }
-#line 1769 "command.c"
+#line 1757 "command.c"
break;
- case 53:
+ case 53: /* $@7: %empty */
#line 317 "command.y"
{ want_nodeval = true; }
-#line 1775 "command.c"
+#line 1763 "command.c"
break;
- case 57:
+ case 57: /* command: D_SOURCE D_STRING */
#line 321 "command.y"
{
if (in_cmd_src(yyvsp[0]->a_string))
yyerror(_("source: `%s': already sourced."), yyvsp[0]->a_string);
}
-#line 1784 "command.c"
+#line 1772 "command.c"
break;
- case 58:
+ case 58: /* command: D_SAVE D_STRING */
#line 326 "command.y"
{
if (! input_from_tty)
yyerror(_("save: `%s': command not permitted."), yyvsp[0]->a_string);
}
-#line 1793 "command.c"
+#line 1781 "command.c"
break;
- case 59:
+ case 59: /* command: D_COMMANDS commands_arg */
#line 331 "command.y"
{
int type = 0;
@@ -1819,10 +1807,10 @@ yyreduce:
}
}
}
-#line 1823 "command.c"
+#line 1811 "command.c"
break;
- case 60:
+ case 60: /* command: D_END */
#line 357 "command.y"
{
if (! in_commands)
@@ -1833,19 +1821,19 @@ yyreduce:
in_commands = false;
}
}
-#line 1837 "command.c"
+#line 1825 "command.c"
break;
- case 61:
+ case 61: /* command: D_SILENT */
#line 367 "command.y"
{
if (! in_commands)
yyerror(_("`silent' valid only in command `commands'"));
}
-#line 1846 "command.c"
+#line 1834 "command.c"
break;
- case 62:
+ case 62: /* command: D_TRACE D_STRING */
#line 372 "command.y"
{
int idx = find_argument(yyvsp[0]);
@@ -1858,16 +1846,16 @@ yyreduce:
yyvsp[0]->a_argument = argtab[idx].value;
}
}
-#line 1862 "command.c"
+#line 1850 "command.c"
break;
- case 63:
+ case 63: /* $@8: %empty */
#line 383 "command.y"
{ want_nodeval = true; }
-#line 1868 "command.c"
+#line 1856 "command.c"
break;
- case 64:
+ case 64: /* command: D_CONDITION plus_integer $@8 condition_exp */
#line 384 "command.y"
{
int type;
@@ -1876,10 +1864,10 @@ yyreduce:
if (! type)
yyerror(_("condition: invalid breakpoint/watchpoint number"));
}
-#line 1880 "command.c"
+#line 1868 "command.c"
break;
- case 65:
+ case 65: /* command: eval_cmd */
#line 392 "command.y"
{
if (in_commands) {
@@ -1891,10 +1879,10 @@ yyreduce:
arg_list = arg;
}
}
-#line 1895 "command.c"
+#line 1883 "command.c"
break;
- case 66:
+ case 66: /* condition_exp: opt_string_node */
#line 406 "command.y"
{
if (yyvsp[0] != NULL) {
@@ -1905,40 +1893,40 @@ yyreduce:
}
yyval = yyvsp[0];
}
-#line 1909 "command.c"
+#line 1897 "command.c"
break;
- case 68:
+ case 68: /* commands_arg: error */
#line 420 "command.y"
{ yyval = NULL; }
-#line 1915 "command.c"
+#line 1903 "command.c"
break;
- case 69:
+ case 69: /* opt_param_list: %empty */
#line 425 "command.y"
{ yyval = NULL; }
-#line 1921 "command.c"
+#line 1909 "command.c"
break;
- case 74:
+ case 74: /* param_list: error */
#line 434 "command.y"
{ yyval = NULL; }
-#line 1927 "command.c"
+#line 1915 "command.c"
break;
- case 75:
+ case 75: /* opt_string_node: %empty */
#line 439 "command.y"
{ yyval = NULL; }
-#line 1933 "command.c"
+#line 1921 "command.c"
break;
- case 77:
+ case 77: /* opt_string_node: error */
#line 442 "command.y"
{ yyval = NULL; }
-#line 1939 "command.c"
+#line 1927 "command.c"
break;
- case 78:
+ case 78: /* string_node: D_NODE */
#line 447 "command.y"
{
NODE *n;
@@ -1946,34 +1934,34 @@ yyreduce:
if ((n->flags & STRING) == 0)
yyerror(_("argument not a string"));
}
-#line 1950 "command.c"
+#line 1938 "command.c"
break;
- case 79:
+ case 79: /* option_args: %empty */
#line 457 "command.y"
{ yyval = NULL; }
-#line 1956 "command.c"
+#line 1944 "command.c"
break;
- case 80:
+ case 80: /* option_args: D_STRING */
#line 459 "command.y"
{
if (find_option(yyvsp[0]->a_string) < 0)
yyerror(_("option: invalid parameter - `%s'"), yyvsp[0]->a_string);
}
-#line 1965 "command.c"
+#line 1953 "command.c"
break;
- case 81:
+ case 81: /* option_args: D_STRING '=' D_STRING */
#line 464 "command.y"
{
if (find_option(yyvsp[-2]->a_string) < 0)
yyerror(_("option: invalid parameter - `%s'"), yyvsp[-2]->a_string);
}
-#line 1974 "command.c"
+#line 1962 "command.c"
break;
- case 82:
+ case 82: /* func_name: D_STRING */
#line 472 "command.y"
{
NODE *n;
@@ -1987,52 +1975,52 @@ yyreduce:
yyvsp[0]->a_node = n;
}
}
-#line 1991 "command.c"
+#line 1979 "command.c"
break;
- case 83:
+ case 83: /* location: %empty */
#line 488 "command.y"
{ yyval = NULL; }
-#line 1997 "command.c"
+#line 1985 "command.c"
break;
- case 88:
+ case 88: /* break_args: %empty */
#line 497 "command.y"
{ yyval = NULL; }
-#line 2003 "command.c"
+#line 1991 "command.c"
break;
- case 89:
+ case 89: /* $@9: %empty */
#line 498 "command.y"
{ want_nodeval = true; }
-#line 2009 "command.c"
+#line 1997 "command.c"
break;
- case 92:
+ case 92: /* $@10: %empty */
#line 500 "command.y"
{ want_nodeval = true; }
-#line 2015 "command.c"
+#line 2003 "command.c"
break;
- case 95:
+ case 95: /* opt_variable: %empty */
#line 506 "command.y"
{ yyval = NULL; }
-#line 2021 "command.c"
+#line 2009 "command.c"
break;
- case 97:
+ case 97: /* opt_string: %empty */
#line 512 "command.y"
{ yyval = NULL; }
-#line 2027 "command.c"
+#line 2015 "command.c"
break;
- case 99:
+ case 99: /* opt_node: %empty */
#line 518 "command.y"
{ yyval = NULL; }
-#line 2033 "command.c"
+#line 2021 "command.c"
break;
- case 104:
+ case 104: /* enable_args: D_STRING opt_integer_list */
#line 530 "command.y"
{
int idx = find_argument(yyvsp[-1]);
@@ -2045,40 +2033,40 @@ yyreduce:
yyvsp[-1]->a_argument = argtab[idx].value;
}
}
-#line 2049 "command.c"
+#line 2037 "command.c"
break;
- case 106:
+ case 106: /* print_exp: '@' D_VARIABLE */
#line 546 "command.y"
{
yyvsp[0]->type = D_array; /* dump all items */
yyvsp[0]->a_count = 0;
}
-#line 2058 "command.c"
+#line 2046 "command.c"
break;
- case 107:
+ case 107: /* print_exp: '@' D_VARIABLE subscript_list */
#line 551 "command.y"
{
yyvsp[-1]->type = D_array;
yyvsp[-1]->a_count = num_dim;
}
-#line 2067 "command.c"
+#line 2055 "command.c"
break;
- case 117:
+ case 117: /* list_args: %empty */
#line 577 "command.y"
{ yyval = NULL; }
-#line 2073 "command.c"
+#line 2061 "command.c"
break;
- case 118:
+ case 118: /* list_args: '+' */
#line 579 "command.y"
{ yyval = NULL; }
-#line 2079 "command.c"
+#line 2067 "command.c"
break;
- case 119:
+ case 119: /* list_args: '-' */
#line 581 "command.y"
{
CMDARG *a;
@@ -2086,10 +2074,10 @@ yyreduce:
a->a_int = -1;
append_cmdarg(a);
}
-#line 2090 "command.c"
+#line 2078 "command.c"
break;
- case 126:
+ case 126: /* integer_range: plus_integer '-' plus_integer */
#line 597 "command.y"
{
if (yyvsp[-2]->a_int > yyvsp[0]->a_int)
@@ -2099,28 +2087,28 @@ yyreduce:
yyvsp[-2]->type = D_range;
yyval = yyvsp[-2];
}
-#line 2103 "command.c"
+#line 2091 "command.c"
break;
- case 127:
+ case 127: /* opt_integer_list: %empty */
#line 609 "command.y"
{ yyval = NULL; }
-#line 2109 "command.c"
+#line 2097 "command.c"
break;
- case 134:
+ case 134: /* exp_list: node */
#line 623 "command.y"
{ yyval = yyvsp[0]; }
-#line 2115 "command.c"
+#line 2103 "command.c"
break;
- case 135:
+ case 135: /* exp_list: exp_list ',' node */
#line 625 "command.y"
{ yyval = yyvsp[-2]; }
-#line 2121 "command.c"
+#line 2109 "command.c"
break;
- case 137:
+ case 137: /* subscript: '[' exp_list ']' */
#line 631 "command.y"
{
CMDARG *a;
@@ -2136,22 +2124,22 @@ yyreduce:
yyvsp[-1]->a_node = subs;
yyval = yyvsp[-1];
}
-#line 2140 "command.c"
+#line 2128 "command.c"
break;
- case 139:
+ case 139: /* subscript_list: subscript */
#line 650 "command.y"
{ yyval = yyvsp[0]; num_dim = 1; }
-#line 2146 "command.c"
+#line 2134 "command.c"
break;
- case 140:
+ case 140: /* subscript_list: subscript_list subscript */
#line 652 "command.y"
{ yyval = yyvsp[-1]; num_dim++; }
-#line 2152 "command.c"
+#line 2140 "command.c"
break;
- case 142:
+ case 142: /* variable: '$' D_NODE */
#line 658 "command.y"
{
NODE *n = yyvsp[0]->a_node;
@@ -2161,10 +2149,10 @@ yyreduce:
yyvsp[0]->type = D_field;
yyval = yyvsp[0];
}
-#line 2165 "command.c"
+#line 2153 "command.c"
break;
- case 143:
+ case 143: /* variable: D_VARIABLE subscript_list */
#line 667 "command.y"
{
/* a_string is array name, a_count is dimension count */
@@ -2172,16 +2160,16 @@ yyreduce:
yyvsp[-1]->a_count = num_dim;
yyval = yyvsp[-1];
}
-#line 2176 "command.c"
+#line 2164 "command.c"
break;
- case 144:
+ case 144: /* node: D_NODE */
#line 677 "command.y"
{ yyval = yyvsp[0]; }
-#line 2182 "command.c"
+#line 2170 "command.c"
break;
- case 145:
+ case 145: /* node: '+' D_NODE */
#line 679 "command.y"
{
NODE *n = yyvsp[0]->a_node;
@@ -2189,10 +2177,10 @@ yyreduce:
yyerror(_("non-numeric value found, numeric expected"));
yyval = yyvsp[0];
}
-#line 2193 "command.c"
+#line 2181 "command.c"
break;
- case 146:
+ case 146: /* node: '-' D_NODE */
#line 686 "command.y"
{
NODE *n = yyvsp[0]->a_node;
@@ -2202,75 +2190,75 @@ yyreduce:
negate_num(n);
yyval = yyvsp[0];
}
-#line 2206 "command.c"
+#line 2194 "command.c"
break;
- case 147:
+ case 147: /* opt_plus_integer: %empty */
#line 698 "command.y"
{ yyval = NULL; }
-#line 2212 "command.c"
+#line 2200 "command.c"
break;
- case 148:
+ case 148: /* opt_plus_integer: plus_integer */
#line 700 "command.y"
{ yyval = yyvsp[0]; }
-#line 2218 "command.c"
+#line 2206 "command.c"
break;
- case 149:
+ case 149: /* opt_integer: %empty */
#line 705 "command.y"
{ yyval = NULL; }
-#line 2224 "command.c"
+#line 2212 "command.c"
break;
- case 150:
+ case 150: /* opt_integer: integer */
#line 707 "command.y"
{ yyval = yyvsp[0]; }
-#line 2230 "command.c"
+#line 2218 "command.c"
break;
- case 151:
+ case 151: /* plus_integer: D_INT */
#line 712 "command.y"
{
if (yyvsp[0]->a_int == 0)
yyerror(_("non-zero integer value"));
yyval = yyvsp[0];
}
-#line 2240 "command.c"
+#line 2228 "command.c"
break;
- case 152:
+ case 152: /* plus_integer: '+' D_INT */
#line 718 "command.y"
{
if (yyvsp[0]->a_int == 0)
yyerror(_("non-zero integer value"));
yyval = yyvsp[0];
}
-#line 2250 "command.c"
+#line 2238 "command.c"
break;
- case 153:
+ case 153: /* integer: D_INT */
#line 727 "command.y"
{ yyval = yyvsp[0]; }
-#line 2256 "command.c"
+#line 2244 "command.c"
break;
- case 154:
+ case 154: /* integer: '+' D_INT */
#line 729 "command.y"
{ yyval = yyvsp[0]; }
-#line 2262 "command.c"
+#line 2250 "command.c"
break;
- case 155:
+ case 155: /* integer: '-' D_INT */
#line 731 "command.y"
{
yyvsp[0]->a_int = - yyvsp[0]->a_int;
yyval = yyvsp[0];
}
-#line 2271 "command.c"
+#line 2259 "command.c"
break;
- case 156:
+ case 156: /* nls: '\n' */
#line 739 "command.y"
{
if (lexptr_begin != NULL) {
@@ -2280,11 +2268,11 @@ yyreduce:
lexptr_begin = NULL;
}
}
-#line 2284 "command.c"
+#line 2272 "command.c"
break;
-#line 2288 "command.c"
+#line 2276 "command.c"
default: break;
}
@@ -2444,13 +2432,13 @@ yyabortlab:
yyexhaustedlab:
yyerror (YY_("memory exhausted"));
yyresult = 2;
- /* Fall through. */
+ goto yyreturn;
#endif
-/*-----------------------------------------------------.
-| yyreturn -- parsing is finished, return the result. |
-`-----------------------------------------------------*/
+/*-------------------------------------------------------.
+| yyreturn -- parsing is finished, clean up and return. |
+`-------------------------------------------------------*/
yyreturn:
if (yychar != YYEMPTY)
{