diff options
-rw-r--r-- | gdb/ada-exp.y | 18 | ||||
-rw-r--r-- | 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 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; |