diff options
author | Tom Tromey <tom@tromey.com> | 2020-12-16 15:49:40 -0700 |
---|---|---|
committer | Tom Tromey <tom@tromey.com> | 2020-12-16 17:35:37 -0700 |
commit | c5c412054ebeb9e9c9dcbb36692b1d6235eb6106 (patch) | |
tree | 312afccbb667f8e41d5ceabd6c60ef3d6f29eb2b /gdb/parse.c | |
parent | f81baa08635491ebf42c3c3609050399d8af21af (diff) | |
download | gdb-c5c412054ebeb9e9c9dcbb36692b1d6235eb6106.zip gdb-c5c412054ebeb9e9c9dcbb36692b1d6235eb6106.tar.gz gdb-c5c412054ebeb9e9c9dcbb36692b1d6235eb6106.tar.bz2 |
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.
Diffstat (limited to 'gdb/parse.c')
-rw-r--r-- | gdb/parse.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/gdb/parse.c b/gdb/parse.c index a27ae86..80a67c6 100644 --- a/gdb/parse.c +++ b/gdb/parse.c @@ -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); |