+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * p-exp.y: Create operations.
+ (pascal_language::parser): Update.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * d-exp.y: Create operations.
+ (d_parse): Update.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * go-exp.y: Create operations.
+ (go_language::parser): Update.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * objc-lang.c (end_msglist): Create operations.
+ * c-exp.y: Change parser to create operations.
+ (write_destructor_name): Remove.
+ (c_parse): Update.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * rust-exp.y: Create operations.
+ (rust_parser::convert_params_to_expression): Change return type.
+ (binop_maker_ftype): New typedef.
+ (maker_map): New global.
+ (rust_parser::convert_ast_to_expression): Change return type.
+ (rust_language::parser): Update.
+ (_initialize_rust_exp): Initialize maker_map.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * stap-probe.c (binop_maker_ftype): New typedef.
+ (stap_maker_map): New global.
+ (stap_make_binop): New function.
+ (stap_parse_register_operand): Return operation_up.
+ (stap_parse_single_operand, stap_parse_argument_conditionally)
+ (stap_parse_argument_1): Likewise.
+ (stap_parse_argument): Create operations.
+ (stap_probe::parse_arguments): Update.
+ (_initialize_stap_probe): Initialize stap_maker_map.
+ * ppc-linux-tdep.c (ppc_stap_parse_special_token): Change return
+ type.
+ * i386-tdep.h (i386_stap_parse_special_token): Change return
+ type.
+ * i386-tdep.c (i386_stap_parse_special_token_triplet)
+ (i386_stap_parse_special_token_three_arg_disp)
+ (i386_stap_parse_special_token): Change return type.
+ * gdbarch.sh (stap_parse_special_token): Change return type.
+ * gdbarch.c: Rebuild.
+ * gdbarch.h: Rebuild.
+ * arm-linux-tdep.c (arm_stap_parse_special_token): Change return
+ type.
+ * aarch64-linux-tdep.c (aarch64_stap_parse_special_token): Change
+ return type.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * gdbarch.sh (dtrace_parse_probe_argument): Change return type.
+ * gdbarch.h: Rebuild.
+ * gdbarch.c: Rebuild.
+ * dtrace-probe.c (dtrace_probe::build_arg_exprs): Update.
+ * amd64-linux-tdep.c (amd64_dtrace_parse_probe_argument): Change
+ return type.
+ (amd64_dtrace_parse_probe_argument): Update.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * parser-defs.h (struct parser_state) <push, push_new,
+ push_c_string, push_symbol, push_dollar, pop, pop_vector, wrap,
+ wrap2>: New methods.
+ <m_operations>: New member.
+ * parse.c (parser_state::push_c_string)
+ (parser_state::push_symbol, parser_state::push_dollar): New
+ methods.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * parser-defs.h (struct expr_completion_state) <expout_last_op>:
+ New member.
+ (struct parser_state) <mark_struct_expression>: New method.
+ * parse.c (parser_state::mark_struct_expression): Update assert.
+ (parser_state::mark_struct_expression): New method.
+ (parser_state::mark_completion_tag): Update assert.
+ (parse_expression_for_completion): Handle expout_last_op.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * ada-exp.h (class ada_var_value_operation) <get_symbol>: Remove;
+ now in superclass.
+ * value.h (fetch_subexp_value): Add "op" parameter.
+ * value.c (init_if_undefined_command): Update.
+ * tracepoint.c (validate_actionline, encode_actions_1): Update.
+ * stap-probe.c (stap_probe::compile_to_ax): Update.
+ * printcmd.c (set_command): Update.
+ * ppc-linux-nat.c (ppc_linux_nat_target::check_condition):
+ Update.
+ * parser-defs.h (struct expr_builder) <set_operation>: New
+ method.
+ * parse.c (parse_exp_in_context, exp_uses_objfile): Update.
+ * expression.h (struct expression) <first_opcode>: Update.
+ <op>: New member.
+ * expprint.c (dump_raw_expression, dump_prefix_expression):
+ Update.
+ * expop.h (class var_value_operation) <get_symbol>: New method.
+ (class register_operation) <get_name>: New method.
+ (class equal_operation): No longer a typedef, now a subclass.
+ (class unop_memval_operation) <get_type>: New method.
+ (class assign_operation) <get_lhs>: New method.
+ (class unop_cast_operation) <get_type>: New method.
+ * eval.c (evaluate_expression, evaluate_type)
+ (evaluate_subexpression_type): Update.
+ (fetch_subexp_value): Add "op" parameter.
+ (parse_and_eval_type): Update.
+ * dtrace-probe.c (dtrace_probe::compile_to_ax): Update.
+ * breakpoint.c (update_watchpoint, watchpoint_check)
+ (watchpoint_exp_is_const, watch_command_1): Update.
+ * ax-gdb.c (gen_trace_for_expr, gen_eval_for_expr, gen_printf):
+ Update.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * ada-lang.c (ada_value_binop): Do not use op_string.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * expprint.c (dump_for_expression): New overload.
+ * expop.h (check_objfile, dump_for_expression): Declare new
+ overloads.
+ * ada-lang.c (check_objfile): New overload.
+ (assign_component, ada_aggregate_component::uses_objfile)
+ (ada_aggregate_component::dump, ada_aggregate_component::assign)
+ (ada_aggregate_component::assign_aggregate)
+ (ada_positional_component::uses_objfile)
+ (ada_positional_component::dump, ada_positional_component::assign)
+ (ada_discrete_range_association::uses_objfile)
+ (ada_discrete_range_association::dump)
+ (ada_discrete_range_association::assign)
+ (ada_name_association::uses_objfile, ada_name_association::dump)
+ (ada_name_association::assign)
+ (ada_choices_component::uses_objfile, ada_choices_component::dump)
+ (ada_choices_component::assign)
+ (ada_others_component::uses_objfile, ada_others_component::dump)
+ (ada_others_component::assign, ada_assign_operation::evaluate):
+ New methods.
+ * ada-exp.h (ada_string_operation) <get_name>: New method.
+ (class ada_assign_operation): New.
+ (class ada_component): New.
+ (ada_component_up): New typedef.
+ (class ada_aggregate_operation, class ada_aggregate_component)
+ (class ada_positional_component, class ada_others_component)
+ (class ada_association): New.
+ (ada_association_up): New typedef.
+ (class ada_choices_component)
+ (class ada_discrete_range_association)
+ (class ada_name_association): New.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * ada-lang.c (ada_var_value_operation::resolve)
+ (ada_funcall_operation::resolve)
+ (ada_ternop_slice_operation::resolve): New methods.
+ * ada-exp.h (struct ada_resolvable): New.
+ (class ada_var_value_operation): Derive from ada_resolvable.
+ <get_block, resolve>: New methods.
+ (class ada_funcall_operation): Derive from ada_resolvable.
+ <resolve>: New method.
+ (class ada_ternop_slice_operation): Derive from ada_resolvable.
+ <resolve>: New method.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * ada-lang.c (ada_funcall_operation::evaluate): New method.
+ * ada-exp.h (class ada_var_msym_value_operation) <get_symbol>: New
+ method.
+ (class ada_funcall_operation): New.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * ada-lang.c (ada_structop_operation::evaluate): New method.
+ * ada-exp.h (class ada_structop_operation): New.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * ada-lang.c (ada_unop_ind_operation::evaluate): New method.
+ * ada-exp.h (class ada_unop_ind_operation): New.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * ada-lang.c (ada_binop_exp): No longer static.
+ * ada-exp.h (ada_binop_exp_operation): New typedef.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * ada-lang.c (ada_val_atr): No longer static.
+ (ada_atr_val_operation::evaluate): New method.
+ * ada-exp.h (class ada_atr_val_operation): New.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * ada-lang.c (ada_pos_atr): No longer static.
+ * ada-exp.h (ada_pos_operation): New typedef.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * ada-lang.c (ada_pos_atr): Rename from value_pos_atr. Change
+ parameters.
+ (ada_evaluate_subexp): Use it.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * ada-lang.c (ada_binop_minmax): No longer static.
+ * ada-exp.h (ada_binop_min_operation, ada_binop_max_operation):
+ New typedefs.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * ada-lang.c (ada_var_msym_value_operation::evaluate_for_cast):
+ New method.
+ * ada-exp.h (class ada_var_msym_value_operation): New.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * ada-lang.c (ada_var_value_operation::evaluate_for_cast)
+ (ada_var_value_operation::evaluate): New methods.
+ * ada-exp.h (class ada_var_value_operation): New.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * ada-lang.c (ada_unop_atr_operation::evaluate): New method.
+ * ada-exp.h (class ada_unop_atr_operation): New.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * ada-lang.c (ada_binop_in_bounds): No longer static.
+ * ada-exp.h (class ada_binop_in_bounds_operation): New.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * ada-lang.c (ada_ternop_slice): No longer static.
+ * ada-exp.h (class ada_ternop_slice_operation): New.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * ada-exp.h (ada_bitwise_operation): New template class.
+ (ada_bitwise_and_operation, ada_bitwise_ior_operation)
+ (ada_bitwise_xor_operation): New typedefs.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * ada-lang.c (ada_equal_binop): No longer static.
+ * ada-exp.h (class ada_binop_equal_operation): New.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * ada-lang.c (ada_mult_binop): No longer static.
+ * ada-exp.h (ada_binop_mul_operation ada_binop_div_operation)
+ (ada_binop_rem_operation, ada_binop_mod_operation): New typedefs.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * ada-lang.c (ada_binop_addsub_operation::evaluate): New method.
+ * ada-exp.h (class ada_binop_addsub_operation): New.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * ada-lang.h (ada_find_operator_symbol, ada_resolve_funcall)
+ (ada_resolve_variable): Declare.
+ * ada-lang.c (ada_find_operator_symbol, ada_resolve_funcall)
+ (ada_resolve_variable): New functions.
+ (resolve_subexp): Update.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * opencl-lang.c (opencl_ternop_cond_operation::evaluate): New
+ method.
+ * c-exp.h (class opencl_ternop_cond_operation): New.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * opencl-lang.c (opencl_logical_binop_operation::evaluate): New
+ method.
+ * c-exp.h (class opencl_logical_binop_operation): New.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * opencl-lang.c (opencl_structop_operation::evaluate): New
+ method.
+ * c-exp.h (class opencl_structop_operation): New.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * opencl-lang.c (opencl_logical_not): No longer static. Change
+ parameters.
+ (evaluate_subexp_opencl): Update.
+ * c-exp.h (opencl_notequal_operation): New typedef.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * opencl-lang.c (opencl_relop, eval_opencl_assign): No longer
+ static. Change parameters.
+ (eval_opencl_assign): No longer static. Add "op" parameter.
+ (evaluate_subexp_opencl): Update.
+ * c-exp.h (opencl_binop_operation): New template class.
+ (opencl_assign_operation, opencl_equal_operation)
+ (opencl_notequal_operation, opencl_less_operation)
+ (opencl_gtr_operation, opencl_geq_operation)
+ (opencl_leq_operation): New typedefs.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * opencl-lang.c (opencl_value_cast): No longer static.
+ * c-exp.h (opencl_cast_type_operation): New typedef.
+
2021-03-08 Tom Tromey <tom@tromey.com>
* f-exp.h (eval_op_f_allocated): Declare.