56 struct value *low_bound_val,
57 struct value *high_bound_val);
95 bool parse_completion,
97 struct type *context_type) = 0;
113 bool parse_completion,
115 struct type *context_type);
132 {
return std::get<0> (
m_storage)->opcode (); }
141 using string_operation::string_operation;
167 {
return UNOP_QUAL; }
183 {
return TERNOP_IN_RANGE; }
210 {
return UNOP_IN_RANGE; }
263template<enum exp_opcode OP>
269 using maybe_constant_operation::maybe_constant_operation;
296 using maybe_constant_operation::maybe_constant_operation;
309 {
return TERNOP_SLICE; }
313 bool parse_completion,
315 struct type *context_type)
override;
324 using maybe_constant_operation::maybe_constant_operation;
337 {
return BINOP_IN_BOUNDS; }
346 using maybe_constant_operation::maybe_constant_operation;
362 using var_value_operation::var_value_operation;
373 {
return std::get<0> (
m_storage).block; }
377 bool parse_completion,
379 struct type *context_type)
override;
392 using var_msym_value_operation::var_msym_value_operation;
416 {
return OP_ATR_VAL; }
425 using unop_ind_base_operation::unop_ind_base_operation;
438 using structop_base_operation::structop_base_operation;
445 {
return STRUCTOP_STRUCT; }
486 bool parse_completion,
488 struct type *context_type)
override;
491 {
return OP_FUNCALL; }
500 using assign_operation::assign_operation;
507 {
return BINOP_ASSIGN; }
522 std::vector<LONGEST> &indices,
523 LONGEST low, LONGEST high) = 0;
565 error (_(
"Aggregates only allowed on the right of an assignment"));
569 {
return OP_AGGREGATE; }
584 std::vector<LONGEST> &indices,
585 LONGEST low, LONGEST high)
override;
610 std::vector<LONGEST> &indices,
611 LONGEST low, LONGEST high)
override;
635 std::vector<LONGEST> &indices,
636 LONGEST low, LONGEST high)
override;
659 std::vector<LONGEST> &indices,
660 LONGEST low, LONGEST high,
701 std::vector<LONGEST> &indices,
702 LONGEST low, LONGEST high)
override;
727 std::vector<LONGEST> &indices,
728 LONGEST low, LONGEST high,
755 std::vector<LONGEST> &indices,
756 LONGEST low, LONGEST high,
776 using long_const_operation::long_const_operation;
780 bool parse_completion,
782 struct type *context_type)
override
786 gdb_assert_not_reached (
"unexpected call");
792 bool parse_completion,
794 struct type *context_type)
override;
805 using concat_operation::concat_operation;
static std::vector< ada_component_up > components
struct value * ada_pos_atr(struct type *expect_type, struct expression *exp, enum noside noside, enum exp_opcode op, struct value *arg)
struct value * ada_unop_neg(struct type *expect_type, struct expression *exp, enum noside noside, enum exp_opcode op, struct value *arg1)
struct value * ada_ternop_slice(struct expression *exp, enum noside noside, struct value *array, struct value *low_bound_val, struct value *high_bound_val)
struct value * ada_atr_tag(struct type *expect_type, struct expression *exp, enum noside noside, enum exp_opcode op, struct value *arg1)
struct value * ada_binop_exp(struct type *expect_type, struct expression *exp, enum noside noside, enum exp_opcode op, struct value *arg1, struct value *arg2)
struct value * ada_unop_in_range(struct type *expect_type, struct expression *exp, enum noside noside, enum exp_opcode op, struct value *arg1, struct type *type)
struct value * ada_abs(struct type *expect_type, struct expression *exp, enum noside noside, enum exp_opcode op, struct value *arg1)
struct value * ada_mult_binop(struct type *expect_type, struct expression *exp, enum noside noside, enum exp_opcode op, struct value *arg1, struct value *arg2)
struct value * ada_atr_size(struct type *expect_type, struct expression *exp, enum noside noside, enum exp_opcode op, struct value *arg1)
struct value * ada_val_atr(enum noside noside, struct type *type, struct value *arg)
struct value * ada_equal_binop(struct type *expect_type, struct expression *exp, enum noside noside, enum exp_opcode op, struct value *arg1, struct value *arg2)
struct value * ada_binop_minmax(struct type *expect_type, struct expression *exp, enum noside noside, enum exp_opcode op, struct value *arg1, struct value *arg2)
struct value * ada_binop_in_bounds(struct expression *exp, enum noside noside, struct value *arg1, struct value *arg2, int n)
ada_aggregate_component(std::vector< ada_component_up > &&components)
std::vector< ada_component_up > m_components
bool uses_objfile(struct objfile *objfile) override
void assign(struct value *container, struct value *lhs, struct expression *exp, std::vector< LONGEST > &indices, LONGEST low, LONGEST high) override
void dump(ui_file *stream, int depth) override
value * evaluate(struct type *expect_type, struct expression *exp, enum noside noside) override
enum exp_opcode opcode() const override
value * assign_aggregate(struct value *container, struct value *lhs, struct expression *exp)
value * evaluate(struct type *expect_type, struct expression *exp, enum noside noside) override
enum exp_opcode opcode() const override
virtual bool uses_objfile(struct objfile *objfile)=0
ada_association()=default
DISABLE_COPY_AND_ASSIGN(ada_association)
virtual void dump(ui_file *stream, int depth)=0
virtual void assign(struct value *container, struct value *lhs, struct expression *exp, std::vector< LONGEST > &indices, LONGEST low, LONGEST high, operation_up &op)=0
virtual ~ada_association()=default
value * evaluate(struct type *expect_type, struct expression *exp, enum noside noside) override
enum exp_opcode opcode() const override
value * evaluate(struct type *expect_type, struct expression *exp, enum noside noside) override
enum exp_opcode opcode() const override
enum exp_opcode opcode() const override
value * evaluate(struct type *expect_type, struct expression *exp, enum noside noside) override
enum exp_opcode opcode() const override
value * evaluate(struct type *expect_type, struct expression *exp, enum noside noside) override
value * evaluate(struct type *expect_type, struct expression *exp, enum noside noside) override
enum exp_opcode opcode() const override
value * evaluate(struct type *expect_type, struct expression *exp, enum noside noside) override
operation_up replace(operation_up &&owner, struct expression *exp, bool deprocedure_p, bool parse_completion, innermost_block_tracker *tracker, struct type *context_type) override
bool resolve(struct expression *exp, bool deprocedure_p, bool parse_completion, innermost_block_tracker *tracker, struct type *context_type) override
void set_associations(std::vector< ada_association_up > &&assoc)
ada_choices_component(operation_up &&op)
void dump(ui_file *stream, int depth) override
std::vector< ada_association_up > m_assocs
void assign(struct value *container, struct value *lhs, struct expression *exp, std::vector< LONGEST > &indices, LONGEST low, LONGEST high) override
bool uses_objfile(struct objfile *objfile) override
virtual void dump(ui_file *stream, int depth)=0
virtual void assign(struct value *container, struct value *lhs, struct expression *exp, std::vector< LONGEST > &indices, LONGEST low, LONGEST high)=0
virtual ~ada_component()=default
DISABLE_COPY_AND_ASSIGN(ada_component)
virtual bool uses_objfile(struct objfile *objfile)=0
value * evaluate(struct type *expect_type, struct expression *exp, enum noside noside) override
bool uses_objfile(struct objfile *objfile) override
void assign(struct value *container, struct value *lhs, struct expression *exp, std::vector< LONGEST > &indices, LONGEST low, LONGEST high, operation_up &op) override
ada_discrete_range_association(operation_up &&low, operation_up &&high)
void dump(ui_file *stream, int depth) override
value * evaluate(struct type *expect_type, struct expression *exp, enum noside noside) override
enum exp_opcode opcode() const override
ada_name_association(operation_up val)
void dump(ui_file *stream, int depth) override
void assign(struct value *container, struct value *lhs, struct expression *exp, std::vector< LONGEST > &indices, LONGEST low, LONGEST high, operation_up &op) override
bool uses_objfile(struct objfile *objfile) override
bool uses_objfile(struct objfile *objfile) override
void assign(struct value *container, struct value *lhs, struct expression *exp, std::vector< LONGEST > &indices, LONGEST low, LONGEST high) override
ada_others_component(operation_up &&op)
void dump(ui_file *stream, int depth) override
ada_positional_component(int index, operation_up &&op)
void assign(struct value *container, struct value *lhs, struct expression *exp, std::vector< LONGEST > &indices, LONGEST low, LONGEST high) override
bool uses_objfile(struct objfile *objfile) override
void dump(ui_file *stream, int depth) override
enum exp_opcode opcode() const override
value * evaluate(struct type *expect_type, struct expression *exp, enum noside noside) override
const char * get_name() const
value * evaluate(struct type *expect_type, struct expression *exp, enum noside noside) override
value * evaluate(struct type *expect_type, struct expression *exp, enum noside noside) override
bool complete(struct expression *exp, completion_tracker &tracker) override
void set_prefix(std::string &&prefix)
void dump(struct ui_file *stream, int depth) const override
enum exp_opcode opcode() const override
enum exp_opcode opcode() const override
value * evaluate(struct type *expect_type, struct expression *exp, enum noside noside) override
value * evaluate(struct type *expect_type, struct expression *exp, enum noside noside) override
enum exp_opcode opcode() const override
enum exp_opcode opcode() const override
value * evaluate(struct type *expect_type, struct expression *exp, enum noside noside) override
value * evaluate(struct type *expect_type, struct expression *exp, enum noside noside) override
value * evaluate(struct type *expect_type, struct expression *exp, enum noside noside) override
enum exp_opcode opcode() const override
value * evaluate_for_cast(struct type *expect_type, struct expression *exp, enum noside noside) override
value * evaluate(struct type *expect_type, struct expression *exp, enum noside noside) override
const block * get_block() const
value * evaluate_for_cast(struct type *expect_type, struct expression *exp, enum noside noside) override
value * evaluate(struct type *expect_type, struct expression *exp, enum noside noside) override
enum exp_opcode opcode() const override
virtual void do_generate_ax(struct expression *exp, struct agent_expr *ax, struct axs_value *value, struct type *cast_type)
virtual void dump(struct ui_file *stream, int depth) const =0
virtual bool complete(struct expression *exp, completion_tracker &tracker)
std::tuple< Arg... > m_storage
tuple_holding_operation(Arg... args)
struct value * eval_op_binary(struct type *expect_type, struct expression *exp, enum noside noside, enum exp_opcode op, struct value *arg1, struct value *arg2)
std::unique_ptr< operation > operation_up
std::unique_ptr< ada_association > ada_association_up
static void dump_for_expression(struct ui_file *stream, int depth, const operation_up &op)
std::unique_ptr< ada_component > ada_component_up
#define prefix(a, b, R, do)
virtual operation_up replace(operation_up &&owner, struct expression *exp, bool deprocedure_p, bool parse_completion, innermost_block_tracker *tracker, struct type *context_type)
virtual bool resolve(struct expression *exp, bool deprocedure_p, bool parse_completion, innermost_block_tracker *tracker, struct type *context_type)=0
struct value * value_cast(struct type *type, struct value *arg2)
struct type * value_type(const struct value *value)