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/language.h | |
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/language.h')
-rw-r--r-- | gdb/language.h | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/gdb/language.h b/gdb/language.h index 5bc99d5..73ddd24 100644 --- a/gdb/language.h +++ b/gdb/language.h @@ -522,14 +522,10 @@ struct language_defn /* Given an expression *EXPP created by prefixifying the result of la_parser, perform any remaining processing necessary to complete its translation. *EXPP may change; la_post_parser is responsible for - releasing its previous contents, if necessary. If VOID_CONTEXT_P, - then no value is expected from the expression. If COMPLETING is - non-zero, then the expression has been parsed for completion, not - evaluation. */ - - virtual void post_parser (expression_up *expp, bool void_context_p, - int completing, - innermost_block_tracker *tracker) const + releasing its previous contents, if necessary. */ + + virtual void post_parser (expression_up *expp, struct parser_state *ps) + const { /* By default the post-parser does nothing. */ } |