diff options
author | Tom Tromey <tom@tromey.com> | 2021-03-08 07:27:57 -0700 |
---|---|---|
committer | Tom Tromey <tom@tromey.com> | 2021-03-08 07:28:40 -0700 |
commit | 08a057e64bb74f4194a216f6693e04b1ad230f48 (patch) | |
tree | f4c76837efc277a660dfc9c2aef46262afb6a7aa /compile | |
parent | d308ba78cfaf7c1b3a8d33ceb66c9a180352b888 (diff) | |
download | gdb-08a057e64bb74f4194a216f6693e04b1ad230f48.zip gdb-08a057e64bb74f4194a216f6693e04b1ad230f48.tar.gz gdb-08a057e64bb74f4194a216f6693e04b1ad230f48.tar.bz2 |
Convert ada-exp.y to use operations
This converts the Ada parser to generate operations rather than
exp_elements.
This was the most difficult of the parser conversions, partly due to
the decision to integrate Ada expression resolution into the parse,
and partly due to Ada aggregregate assignment. A couple of new
per-parse globals are introduced, along with a number of helper
functions. Resolution is done in 'ada_pop', yielding the unfortunate
rule that ada-exp.y should generally not use parser_state::pop
(exceptions are marked).
gdb/ChangeLog
2021-03-08 Tom Tromey <tom@tromey.com>
* ada-exp.y: Create operations.
(empty_stoken): Remove.
(ada_pop, ada_wrap, ada_addrof, ada_un_wrap2, ada_wrap2)
(ada_wrap_op, ada_wrap3, ada_funcall): New functions.
(components): New global.
(push_component, choice_component, pop_component, pop_components):
New functions.
(associations): New global
(push_association, pop_association, pop_associations): New
functions.
(ada_parse): Update.
(write_var_from_sym, write_int): Create operations.
(write_exp_op_with_string): Remove.
(write_object_renaming, write_selectors, write_ambiguous_var)
(write_var_or_type, write_name_assoc): Create operations.
* ada-lang.h (ada_index_type): Declare.
* ada-lang.c (ada_index_type): No longer static.
Diffstat (limited to 'compile')
0 files changed, 0 insertions, 0 deletions