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