This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
FYI, I think these should be renamed to OP_OBJC_xxxx so that it is very clear that these have Objective C semantics. Otherwize I think it runs the risk of people trying to re-use these operators in other languages.Adam Fedor wrote:This patch adds Objective-C language support to gdb based upon a patch provided by Apple Computer Inc from their version of gdb. Note that the patch only contains changes to existing files. New files (objc-lang.h, objc-lang.c, objc-exp.y) and a gdb.objc testsuite directory are located at ftp://ftp.gnustep.org/pub/gnustep/contrib/gdb-objc-patch.tar.gzAdam, this bit can't hurt anything, since it just adds some new enum values. Only one suggestion -- how about putting OP_THIS and OP_SELF consecutively, because they're so similar? Also please hold off on the export of evaluate_subexp -- let's handle that separately. Other than that, approved. Wait a couple days for objections, then you can commit it.* expression.h: New ops NSSTRING, SELECTOR, MSGCALL, and SELF.Index: gdb/expression.h =================================================================== RCS file: /cvs/src/src/gdb/expression.h,v retrieving revision 1.4 diff -u -p -r1.4 expression.h --- gdb/expression.h 1 Aug 2002 17:18:32 -0000 1.4 +++ gdb/expression.h 17 Sep 2002 19:30:05 -0000 @@ -181,6 +181,12 @@ enum exp_opcode making three exp_elements. */ OP_FUNCALL, + /* OP_MSGCALL is followed by a string in the next exp_element and then an + integer. The string is the selector string. The integer is the number + of arguments to the message call. That many plus one values are used, + the first one being the object pointer. This is an Objective C message */ + OP_MSGCALL, +
/* This is EXACTLY like OP_FUNCALL but is semantically different. In F77, array subscript expressions, substring expressions and function calls are all exactly the same syntactically. They may @@ -273,11 +279,17 @@ enum exp_opcode STRUCTOP_STRUCT, STRUCTOP_PTR, - /* C++ */ - /* OP_THIS is just a placeholder for the class instance variable. + /* C++: OP_THIS is just a placeholder for the class instance variable. It just comes in a tight (OP_THIS, OP_THIS) pair. */ OP_THIS, + /* Objective C: "@selector" pseudo-operator */ + OP_SELECTOR, + + /* Objective-C: OP_SELF is just a placeholder for the class instance + variable. It just comes in a tight (OP_SELF, OP_SELF) pair. */ + OP_SELF, + /* OP_SCOPE surrounds a type name and a field name. The type name is encoded as one element, but the field name stays as a string, which, of course, is variable length. */ @@ -305,7 +317,10 @@ enum exp_opcode OP_NAME, /* An unparsed expression. Used for Scheme (for now at least) */ - OP_EXPRSTRING + OP_EXPRSTRING, + + /* An Objective C Foundation Class NSString constant */ + OP_NSSTRING, }; union exp_element @@ -369,6 +384,10 @@ enum noside extern struct value *evaluate_subexp_standard (struct type *, struct expression *, int *, enum noside); + +extern struct value *evaluate_subexp (struct type *, struct expression *, + int *, enum noside); + /* From expprint.c */
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |