expression.h: New ops OP_NSSTRING, OP_SELECTOR, OP_MSGCALL, and OP_SELF.

This commit is contained in:
Adam Fedor 2002-10-12 02:43:48 +00:00
parent 806e607347
commit b01ab485c7
2 changed files with 23 additions and 3 deletions

View 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.

View 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