From 02a8d05fc67915ada76b45f9f10b11baf57d5278 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Tue, 22 Feb 2022 12:56:09 -0700 Subject: [PATCH] Remove the Ada DOT_ALL token The Ada parser has a DOT_ALL token to represent ".all", and another token to represent other "." forms. However, for completion it is a bit more convenient to unify these cases, so this patch removes DOT_ALL. --- gdb/ada-exp.y | 18 +++++++++--------- gdb/ada-lex.l | 2 -- 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/gdb/ada-exp.y b/gdb/ada-exp.y index 204e77af6ca..d84cdcebf58 100644 --- a/gdb/ada-exp.y +++ b/gdb/ada-exp.y @@ -448,8 +448,6 @@ make_tick_completer (struct stoken tok) %type block %type arglist tick_arglist -%token DOT_ALL - /* Special type cases, put in to allow the parser to distinguish different legal basetypes. */ %token 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 (); } - ; primary : primary DOT_ID { - operation_up arg = ada_pop (); - pstate->push_new - (std::move (arg), copy_name ($2)); + if (strcmp ($2.ptr, "all") == 0) + ada_wrap (); + else + { + operation_up arg = ada_pop (); + pstate->push_new + (std::move (arg), copy_name ($2)); + } } ; diff --git a/gdb/ada-lex.l b/gdb/ada-lex.l index 40e450bf679..9e35776d7c2 100644 --- a/gdb/ada-lex.l +++ b/gdb/ada-lex.l @@ -289,8 +289,6 @@ false { return FALSEKEYWORD; } } } -"."{WHITE}*all { return DOT_ALL; } - "."{WHITE}*{ID} { yylval.sval = processId (yytext+1, yyleng-1); return DOT_ID; -- 2.30.2