aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ada-exp.y18
-rw-r--r--gdb/ada-lex.l2
2 files changed, 9 insertions, 11 deletions
diff --git a/gdb/ada-exp.y b/gdb/ada-exp.y
index 204e77a..d84cdce 100644
--- a/gdb/ada-exp.y
+++ b/gdb/ada-exp.y
@@ -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));
+ }
}
;
diff --git a/gdb/ada-lex.l b/gdb/ada-lex.l
index 40e450b..9e35776 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;