+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * expop.h (class ternop_cond_operation): New.
+ * ax-gdb.c (ternop_cond_operation::do_generate_ax): New method.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * expop.h (class ternop_slice_operation): New.
+ * eval.c (eval_op_ternop): No longer static.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * expop.h (class string_operation): New.
+ * eval.c (eval_op_string): No longer static.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * expop.h (class internalvar_operation): New.
+ * ax-gdb.c (internalvar_operation::do_generate_ax): New method.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * expop.h (class bool_operation): New.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * expop.h (class register_operation): New.
+ * eval.c (eval_op_register): No longer static.
+ * ax-gdb.c (register_operation::do_generate_ax): New method.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * expop.h (class last_operation): New.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * expop.h (class func_static_var_operation): New.
+ * eval.c (eval_op_func_static_var): No longer static.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * expop.h (class var_entry_value_operation): New.
+ * eval.c (eval_op_var_entry_value): No longer static.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * expression.h (class operation) <set_outermost>: New method.
+ * expop.h (class var_msym_value_operation): New.
+ * eval.c (eval_op_var_msym_value): No longer static.
+ (var_msym_value_operation::evaluate_for_address)
+ (var_msym_value_operation::evaluate_for_sizeof)
+ (var_msym_value_operation::evaluate_for_cast): New methods.
+ * ax-gdb.c (var_msym_value_operation::do_generate_ax): New
+ method.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * expop.h (class long_const_operation): New.
+ * ax-gdb.c (long_const_operation::do_generate_ax): New method.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * expop.h (class scope_operation): New.
+ * eval.c (eval_op_scope): No longer static.
+ (scope_operation::evaluate_for_address): New method.
+ * ax-gdb.c (scope_operation::do_generate_ax): New method.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * expprint.c (float_const_operation::dump): New method.
+ * expop.h (float_data): New typedef.
+ (class float_const_operation): New.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * expop.h (gen_expr_binop, gen_expr_structop): Declare.
+ * ax-gdb.c (gen_expr_binop): New function.
+ (gen_expr_structop): Likewise.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * expprint.c (expr::dump_for_expression): New functions.
+ * expop.h (dump_for_expression): New overloads.
+ (tuple_holding_operation::dump, tuple_holding_operation::do_dump):
+ Update.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * expression.h (expr::operation): New class.
+ (expr::make_operation): New function.
+ (expr::operation_up): New typedef.
+ * expop.h: New file.
+ * eval.c (operation::evaluate_for_cast)
+ (operation::evaluate_for_address, operation::evaluate_for_sizeof):
+ New methods.
+ * ax-gdb.c (operation::generate_ax): New method.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * ax-gdb.c (gen_expr_binop_rest): Remove "pc" parameter.
+ (gen_expr_binop_rest): New overload.
+
2021-03-08 Tom Tromey <tom@tromey.com>
* eval.c (eval_multi_subscript): New function.