* ch-exp.y (value_string_element, string_primitive_value,
authorPer Bothner <per@bothner.com>
Wed, 1 Feb 1995 21:02:51 +0000 (21:02 +0000)
committerPer Bothner <per@bothner.com>
Wed, 1 Feb 1995 21:02:51 +0000 (21:02 +0000)
commitf91a9e05e0183d596f1f307ddeb462175ca84ce8
tree0d4a44205089ea893799272b7a78b7f8bd3acdea
parente1affd5840505e64d51482bfc3de7ea74edc5352
* ch-exp.y (value_string_element, string_primitive_value,
start_element, left_element, right_element, slice_size,
lower_element, upper_element, first_element):  Removed.
(value_string_slice, value_array_slice):  Replaced by ...
(slice):  New non-terminal, with working slice support.
(primitive_value_lparen, rparen):  New non-terminals.
(maybe_tuple_elements):  New non-terminal, to allow empty tuples.
(idtokentab):  Added "up".

* value.h (COERCE_VARYING_ARRAY):  New macro.
* valarith.c (value_subscript):  Use it.
* valops.c (value_cast):  Likewise.  Also, do nothing if already
correct type, and allow converting from/to range to/from scalar.

* valops.c, value.h (varying_to_slice, value_slice):  New functions.
* eval.c (OP_ARRAY):  Add cast for array element.
* expression.h (TERNOP_SLICE, TERNOP_SLICE_COUNT):  New exp_opcodes.
* valops.c (chill_varying_type):  Moved function frp, here ...
* gdbtypes.c (chill_varying_type), gdbtypes.h: ... to here.
* parse.c (length_of_subexp, prefixify_subexp):  Add support
for TERNOP_SLICE, TERNOP_SLICE_COUNT.
* expprint.c (print_subexp, dump_expression):  Likewise.
* eval.c (evaluate_subexp):  Likewise.

* eval.c (evaluate_subexp case MULTI_SUBSCRIPT):  Don't call
value_x_binop on a Chill varying string.
gdb/ChangeLog
gdb/ch-exp.y
gdb/eval.c
gdb/expression.h
gdb/gdbtypes.c
gdb/gdbtypes.h
gdb/parse.c
gdb/valops.c
gdb/value.h