aboutsummaryrefslogtreecommitdiff
path: root/gdb/jv-exp.y
diff options
context:
space:
mode:
authorDaniel Jacobowitz <drow@false.org>2004-09-21 20:44:23 +0000
committerDaniel Jacobowitz <drow@false.org>2004-09-21 20:44:23 +0000
commiteb4a223d0a7351b3d908a258f1e27b6250931902 (patch)
tree7cce7b6eb47790ba96ebe968a3e9430d83025067 /gdb/jv-exp.y
parent62521f270583571249fd24d81d70e28d7a8e7e36 (diff)
downloadfsf-binutils-gdb-drow_intercu-20040221-branch.zip
fsf-binutils-gdb-drow_intercu-20040221-branch.tar.gz
fsf-binutils-gdb-drow_intercu-20040221-branch.tar.bz2
Merge from mainline.drow_intercu-20040221-branch
Diffstat (limited to 'gdb/jv-exp.y')
-rw-r--r--gdb/jv-exp.y17
1 files changed, 13 insertions, 4 deletions
diff --git a/gdb/jv-exp.y b/gdb/jv-exp.y
index 41da7d0..a3d1210 100644
--- a/gdb/jv-exp.y
+++ b/gdb/jv-exp.y
@@ -446,13 +446,22 @@ FieldAccess:
/*| SUPER '.' SimpleName { FIXME } */
;
+FuncStart:
+ Name '('
+ { push_expression_name ($1); }
+;
+
MethodInvocation:
- Name '(' ArgumentList_opt ')'
- { error (_("Method invocation not implemented")); }
+ FuncStart
+ { start_arglist(); }
+ ArgumentList_opt ')'
+ { write_exp_elt_opcode (OP_FUNCALL);
+ write_exp_elt_longcst ((LONGEST) end_arglist ());
+ write_exp_elt_opcode (OP_FUNCALL); }
| Primary '.' SimpleName '(' ArgumentList_opt ')'
- { error (_("Method invocation not implemented")); }
+ { error (_("Form of method invocation not implemented")); }
| SUPER '.' SimpleName '(' ArgumentList_opt ')'
- { error (_("Method invocation not implemented")); }
+ { error (_("Form of method invocation not implemented")); }
;
ArrayAccess: