mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-27 03:51:15 +08:00
* ch-exp.y: Get rid of some extra non-terminals, and move
their rules into primitive_value. * ch-lang.c (chill_op_print_tab): Add '->'. * expprint.c (print_subexp): Recognize unary postfix operator.
This commit is contained in:
parent
4b4e568a4c
commit
bdef6b60f3
@ -1,3 +1,10 @@
|
||||
Fri Sep 16 00:14:40 1994 Per Bothner (bothner@kalessin.cygnus.com)
|
||||
|
||||
* ch-exp.y: Get rid of some extra non-terminals, and move
|
||||
their rules into primitive_value.
|
||||
* ch-lang.c (chill_op_print_tab): Add '->'.
|
||||
* expprint.c (print_subexp): Recognize unary postfix operator.
|
||||
|
||||
Wed Sep 14 18:27:42 1994 Jason Molenda (crash@phydeaux.cygnus.com)
|
||||
|
||||
* remote-hms.c: use remote_debug instead of hms_silent toggle.
|
||||
|
91
gdb/ch-exp.y
91
gdb/ch-exp.y
@ -247,18 +247,14 @@ yyerror PARAMS ((char *));
|
||||
%token <ivar> GDB_VARIABLE /* Convenience variable */
|
||||
%token <voidval> GDB_ASSIGNMENT /* Assign value to somewhere */
|
||||
|
||||
%type <voidval> location
|
||||
%type <voidval> access_name
|
||||
%type <voidval> primitive_value
|
||||
%type <voidval> location_contents
|
||||
%type <voidval> value_name
|
||||
%type <voidval> literal
|
||||
%type <voidval> tuple
|
||||
%type <voidval> value_string_element
|
||||
%type <voidval> value_string_slice
|
||||
%type <voidval> value_array_element
|
||||
%type <voidval> value_array_slice
|
||||
%type <voidval> value_structure_field
|
||||
%type <voidval> expression_conversion
|
||||
%type <voidval> value_procedure_call
|
||||
%type <voidval> value_built_in_routine_call
|
||||
@ -290,7 +286,6 @@ yyerror PARAMS ((char *));
|
||||
%type <voidval> left_element
|
||||
%type <voidval> right_element
|
||||
%type <voidval> slice_size
|
||||
%type <voidval> array_primitive_value
|
||||
%type <voidval> expression_list
|
||||
%type <voidval> lower_element
|
||||
%type <voidval> upper_element
|
||||
@ -336,15 +331,6 @@ undefined_value : FIXME_01
|
||||
}
|
||||
;
|
||||
|
||||
/* Z.200, 4.2.1 */
|
||||
|
||||
location : access_name
|
||||
| primitive_value POINTER
|
||||
{
|
||||
write_exp_elt_opcode (UNOP_IND);
|
||||
}
|
||||
;
|
||||
|
||||
/* Z.200, 4.2.2 */
|
||||
|
||||
access_name : LOCATION_NAME
|
||||
@ -391,9 +377,26 @@ expression_list : expression
|
||||
|
||||
/* Z.200, 5.2.1 */
|
||||
|
||||
primitive_value : location_contents
|
||||
primitive_value :
|
||||
access_name
|
||||
| primitive_value '('
|
||||
/* This is to save the value of arglist_len
|
||||
being accumulated for each dimension. */
|
||||
{ start_arglist (); }
|
||||
expression_list ')'
|
||||
{
|
||||
$$ = 0; /* FIXME */
|
||||
write_exp_elt_opcode (MULTI_SUBSCRIPT);
|
||||
write_exp_elt_longcst ((LONGEST) end_arglist ());
|
||||
write_exp_elt_opcode (MULTI_SUBSCRIPT);
|
||||
}
|
||||
| primitive_value FIELD_NAME
|
||||
{ write_exp_elt_opcode (STRUCTOP_STRUCT);
|
||||
write_exp_string ($2);
|
||||
write_exp_elt_opcode (STRUCTOP_STRUCT);
|
||||
}
|
||||
| primitive_value POINTER
|
||||
{
|
||||
write_exp_elt_opcode (UNOP_IND);
|
||||
}
|
||||
| value_name
|
||||
{
|
||||
@ -415,18 +418,10 @@ primitive_value : location_contents
|
||||
{
|
||||
$$ = 0; /* FIXME */
|
||||
}
|
||||
| value_array_element
|
||||
{
|
||||
$$ = 0; /* FIXME */
|
||||
}
|
||||
| value_array_slice
|
||||
{
|
||||
$$ = 0; /* FIXME */
|
||||
}
|
||||
| value_structure_field
|
||||
{
|
||||
$$ = 0; /* FIXME */
|
||||
}
|
||||
| expression_conversion
|
||||
{
|
||||
$$ = 0; /* FIXME */
|
||||
@ -453,14 +448,6 @@ primitive_value : location_contents
|
||||
}
|
||||
;
|
||||
|
||||
/* Z.200, 5.2.2 */
|
||||
|
||||
location_contents: location
|
||||
{
|
||||
$$ = 0; /* FIXME */
|
||||
}
|
||||
;
|
||||
|
||||
/* Z.200, 5.2.3 */
|
||||
|
||||
value_name : synonym_name
|
||||
@ -568,41 +555,18 @@ value_string_slice: string_primitive_value '(' left_element ':' right_element ')
|
||||
}
|
||||
;
|
||||
|
||||
/* Z.200, 5.2.8 */
|
||||
|
||||
value_array_element: array_primitive_value '('
|
||||
/* This is to save the value of arglist_len
|
||||
being accumulated for each dimension. */
|
||||
{ start_arglist (); }
|
||||
expression_list ')'
|
||||
{
|
||||
write_exp_elt_opcode (MULTI_SUBSCRIPT);
|
||||
write_exp_elt_longcst ((LONGEST) end_arglist ());
|
||||
write_exp_elt_opcode (MULTI_SUBSCRIPT);
|
||||
}
|
||||
;
|
||||
|
||||
/* Z.200, 5.2.9 */
|
||||
|
||||
value_array_slice: array_primitive_value '(' lower_element ':' upper_element ')'
|
||||
value_array_slice: primitive_value '(' lower_element ':' upper_element ')'
|
||||
{
|
||||
$$ = 0; /* FIXME */
|
||||
}
|
||||
| array_primitive_value '(' first_element UP slice_size ')'
|
||||
| primitive_value '(' first_element UP slice_size ')'
|
||||
{
|
||||
$$ = 0; /* FIXME */
|
||||
}
|
||||
;
|
||||
|
||||
/* Z.200, 5.2.10 */
|
||||
|
||||
value_structure_field: primitive_value FIELD_NAME
|
||||
{ write_exp_elt_opcode (STRUCTOP_STRUCT);
|
||||
write_exp_string ($2);
|
||||
write_exp_elt_opcode (STRUCTOP_STRUCT);
|
||||
}
|
||||
;
|
||||
|
||||
/* Z.200, 5.2.11 */
|
||||
|
||||
expression_conversion: mode_name parenthesised_expression
|
||||
@ -848,7 +812,7 @@ operand_5 : operand_6
|
||||
|
||||
/* Z.200, 5.3.9 */
|
||||
|
||||
operand_6 : POINTER location
|
||||
operand_6 : POINTER primitive_value
|
||||
{
|
||||
write_exp_elt_opcode (UNOP_ADDR);
|
||||
}
|
||||
@ -866,7 +830,7 @@ operand_6 : POINTER location
|
||||
/* Z.200, 6.2 */
|
||||
|
||||
single_assignment_action :
|
||||
location GDB_ASSIGNMENT value
|
||||
primitive_value GDB_ASSIGNMENT value
|
||||
{
|
||||
write_exp_elt_opcode (BINOP_ASSIGN);
|
||||
}
|
||||
@ -961,15 +925,6 @@ length_argument : expression
|
||||
}
|
||||
;
|
||||
|
||||
/* Z.200, 12.4.3 */
|
||||
|
||||
array_primitive_value : primitive_value
|
||||
{
|
||||
$$ = 0;
|
||||
}
|
||||
;
|
||||
|
||||
|
||||
/* Things which still need productions... */
|
||||
|
||||
array_mode_name : FIXME_08 { $$ = 0; }
|
||||
|
@ -280,6 +280,8 @@ static const struct op_print chill_op_print_tab[] = {
|
||||
{"/", BINOP_DIV, PREC_MUL, 0},
|
||||
{"//", BINOP_CONCAT, PREC_PREFIX, 0}, /* FIXME: precedence? */
|
||||
{"-", UNOP_NEG, PREC_PREFIX, 0},
|
||||
{"->", UNOP_IND, PREC_SUFFIX, 1},
|
||||
{"->", UNOP_ADDR, PREC_PREFIX, 0},
|
||||
{NULL, 0, 0, 0}
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user