Remove the Ada DOT_ALL token

The Ada parser has a DOT_ALL token to represent ".all", and another
token to represent other ".<identifier>" forms.  However, for
completion it is a bit more convenient to unify these cases, so this
patch removes DOT_ALL.
This commit is contained in:
Tom Tromey 2022-02-22 12:56:09 -07:00
parent 67700be286
commit 02a8d05fc6
2 changed files with 9 additions and 11 deletions

View File

@ -448,8 +448,6 @@ make_tick_completer (struct stoken tok)
%type <bval> block
%type <lval> arglist tick_arglist
%token DOT_ALL
/* Special type cases, put in to allow the parser to distinguish different
legal basetypes. */
%token <sval> DOLLAR_VARIABLE
@ -477,7 +475,7 @@ make_tick_completer (struct stoken tok)
/* The following are right-associative only so that reductions at this
precedence have lower precedence than '.' and '('. The syntax still
forces a.b.c, e.g., to be LEFT-associated. */
%right '.' '(' '[' DOT_ID DOT_ALL
%right '.' '(' '[' DOT_ID
%token NEW OTHERS
@ -506,15 +504,17 @@ exp1 : exp
;
/* Expressions, not including the sequencing operator. */
primary : primary DOT_ALL
{ ada_wrap<ada_unop_ind_operation> (); }
;
primary : primary DOT_ID
{
operation_up arg = ada_pop ();
pstate->push_new<ada_structop_operation>
(std::move (arg), copy_name ($2));
if (strcmp ($2.ptr, "all") == 0)
ada_wrap<ada_unop_ind_operation> ();
else
{
operation_up arg = ada_pop ();
pstate->push_new<ada_structop_operation>
(std::move (arg), copy_name ($2));
}
}
;

View File

@ -289,8 +289,6 @@ false { return FALSEKEYWORD; }
}
}
"."{WHITE}*all { return DOT_ALL; }
"."{WHITE}*{ID} {
yylval.sval = processId (yytext+1, yyleng-1);
return DOT_ID;