summaryrefslogtreecommitdiff
path: root/gdb/c-exp.y
diff options
context:
space:
mode:
authorKeith Seitz <keiths@redhat.com>2009-08-25 00:23:07 +0000
committerKeith Seitz <keiths@redhat.com>2009-08-25 00:23:07 +0000
commitc1af96a0c544a1dac4a4536ab371980282bb74b0 (patch)
tree45f94807dabd9c599060bb643dad08a2b57292ac /gdb/c-exp.y
parent36271639f5a5f964d20cbb0c3cd1a5d6f697d056 (diff)
downloadbinutils-gdb-c1af96a0c544a1dac4a4536ab371980282bb74b0.tar.gz
* c-exp.y (tokentab3): Add new token, ARROW_STAR. Changed all users.
(tokentab2): Add new token, DOT_STAR. Changed all users.
Diffstat (limited to 'gdb/c-exp.y')
-rw-r--r--gdb/c-exp.y12
1 files changed, 7 insertions, 5 deletions
diff --git a/gdb/c-exp.y b/gdb/c-exp.y
index aacc1125774..fc41bfd0d6b 100644
--- a/gdb/c-exp.y
+++ b/gdb/c-exp.y
@@ -232,7 +232,7 @@ static int parse_number (char *, int, int, YYSTYPE *);
%left '+' '-'
%left '*' '/' '%'
%right UNARY INCREMENT DECREMENT
-%right ARROW '.' '[' '('
+%right ARROW ARROW_STAR '.' DOT_STAR '[' '('
%token <ssym> BLOCKNAME
%token <bval> FILENAME
%type <bval> block
@@ -333,7 +333,7 @@ exp : exp ARROW qualified_name
write_exp_elt_opcode (STRUCTOP_MPTR); }
;
-exp : exp ARROW '*' exp
+exp : exp ARROW_STAR exp
{ write_exp_elt_opcode (STRUCTOP_MPTR); }
;
@@ -368,7 +368,7 @@ exp : exp '.' qualified_name
write_exp_elt_opcode (STRUCTOP_MEMBER); }
;
-exp : exp '.' '*' exp
+exp : exp DOT_STAR exp
{ write_exp_elt_opcode (STRUCTOP_MEMBER); }
;
@@ -1664,7 +1664,8 @@ struct token
static const struct token tokentab3[] =
{
{">>=", ASSIGN_MODIFY, BINOP_RSH, 0},
- {"<<=", ASSIGN_MODIFY, BINOP_LSH, 0}
+ {"<<=", ASSIGN_MODIFY, BINOP_LSH, 0},
+ {"->*", ARROW_STAR, BINOP_END, 1}
};
static const struct token tokentab2[] =
@@ -1688,7 +1689,8 @@ static const struct token tokentab2[] =
{"==", EQUAL, BINOP_END, 0},
{"!=", NOTEQUAL, BINOP_END, 0},
{"<=", LEQ, BINOP_END, 0},
- {">=", GEQ, BINOP_END, 0}
+ {">=", GEQ, BINOP_END, 0},
+ {".*", DOT_STAR, BINOP_END, 0}
};
/* Identifier-like tokens. */