expression.h: New ops OP_NSSTRING, OP_SELECTOR, OP_MSGCALL, and OP_SELF.
authorAdam Fedor <fedor@gnu.org>
Sat, 12 Oct 2002 02:43:48 +0000 (02:43 +0000)
committerAdam Fedor <fedor@gnu.org>
Sat, 12 Oct 2002 02:43:48 +0000 (02:43 +0000)
gdb/ChangeLog
gdb/expression.h

index 895bced497a47f7b31accb38395abe6f6833a2e5..0f014135a3df219777275066fb5f84c840485396 100644 (file)
@@ -1,3 +1,8 @@
+2002-10-11  Adam Fedor  <fedor@gnu.org>
+
+       * expression.h: New ops OP_NSSTRING, OP_SELECTOR, OP_MSGCALL, and
+       OP_SELF.
+
 2002-10-11  Adam Fedor  <fedor@gnu.org>
 
        * language.h (CAST_IS_CONVERSION): Add language_objc.
index 34e002f3a281dc58cdd6ab9e352bab902111f455..e7f9d4863e6ccd43e367ff687bbb1ac2a322e1ba 100644 (file)
@@ -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: OP_SELF is just a placeholder for the class instance
+       variable.  It just comes in a tight (OP_SELF, OP_SELF) pair.  */
+    OP_SELF,
+
+    /* Objective C: "@selector" pseudo-operator */
+    OP_SELECTOR,
+
     /* 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