Change parameters to language_defn::post_parser
In the expression rewrite, Ada type resolution will be done at parse time rather than in a post-parse pass. At this point, language_defn::post_parser will be removed. However, for this to work, the information available to post_parser must be made available during the actual parse. This patch refactors this code slightly to make this possible. In particular, "void_context_p" is passed to the parser_state constructor, and the parser state is then passed to the post_parser method. gdb/ChangeLog 2020-12-16 Tom Tromey <tom@tromey.com> * rust-exp.y (rust_lex_tests): Update. * parser-defs.h (parser_state): Add void_p parameter. <void_context_p>: New member. * parse.c (parse_exp_in_context): Update. * language.h (language_defn::post_parser): Remove void_context_p, completing, tracker parameters. Add parser state. * ada-lang.c (ada_language::post_parser): Update.
This commit is contained in:
parent
f81baa0863
commit
c5c412054e
6 changed files with 28 additions and 16 deletions
|
@ -1113,7 +1113,7 @@ parse_exp_in_context (const char **stringptr, CORE_ADDR pc,
|
|||
|
||||
parser_state ps (lang, get_current_arch (), expression_context_block,
|
||||
expression_context_pc, comma, *stringptr,
|
||||
cstate != nullptr, tracker);
|
||||
cstate != nullptr, tracker, void_context_p);
|
||||
|
||||
scoped_restore_current_language lang_saver;
|
||||
set_language (lang->la_language);
|
||||
|
@ -1147,7 +1147,7 @@ parse_exp_in_context (const char **stringptr, CORE_ADDR pc,
|
|||
if (out_subexp)
|
||||
*out_subexp = subexp;
|
||||
|
||||
lang->post_parser (&result, void_context_p, ps.parse_completion, tracker);
|
||||
lang->post_parser (&result, &ps);
|
||||
|
||||
if (expressiondebug)
|
||||
dump_prefix_expression (result.get (), gdb_stdlog);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue