Fri Nov 21 02:19:57 1997 Geoffrey Noer <noer@cygnus.com>
[deliverable/binutils-gdb.git] / gdb / expression.h
index 6a166dbe796ac4dccd35ae225da610ee0d02b95b..9561b1c6dcf6b2e9faac125322687d0b85fb466e 100644 (file)
@@ -15,7 +15,7 @@ GNU General Public License for more details.
 
 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
-Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #if !defined (EXPRESSION_H)
 #define EXPRESSION_H 1
@@ -132,13 +132,6 @@ enum exp_opcode
      by each of the next following subexpressions, one per dimension. */
    MULTI_SUBSCRIPT,
 
-  /* For Fortran array subscripting (column major style). Like the 
-     Modula operator, we find that the dimensionality is 
-     encoded in the operator.  This operator is distinct 
-     from the above one because it uses column-major array 
-     ordering not row-major.  */ 
-  MULTI_F77_SUBSCRIPT,
-
   /* The OP_... series take immediate following arguments.
      After the arguments come another OP_... (the same one)
      so that the grouping can be recognized from the end.  */
@@ -193,11 +186,6 @@ enum exp_opcode
      literal. It is followed by exactly two args that are doubles.  */ 
   OP_COMPLEX,
 
-  /* The following OP introduces a F77 substring operator.
-     It should have a string type and two integer types that follow 
-     indicating the "from" and "to" for the substring. */ 
-  OP_F77_SUBSTR,
-
   /* OP_STRING represents a string constant.
      Its format is the same as that of a STRUCTOP, but the string
      data is just made into a string constant when the operation
@@ -259,6 +247,9 @@ enum exp_opcode
   UNOP_ODD,
   UNOP_TRUNC,
 
+  /* Chill builtin functions. */
+  UNOP_LOWER, UNOP_UPPER, UNOP_LENGTH,
+
   OP_BOOL,             /* Modula-2 builtin BOOLEAN type */
   OP_M2_STRING,                /* Modula-2 string constants */
 
@@ -276,6 +267,14 @@ enum exp_opcode
   STRUCTOP_STRUCT,
   STRUCTOP_PTR,
 
+/* start-sanitize-gm */
+#ifdef GENERAL_MAGIC_HACKS
+  /* STRUCTOP_FIELD is for handling field access for Magic Cap dynamic objects.
+   */
+  STRUCTOP_FIELD,
+#endif /* GENERAL_MAGIC_HACKS */
+/* end-sanitize-gm */
+
   /* C++ */
   /* OP_THIS is just a placeholder for the class instance variable.
      It just comes in a tight (OP_THIS, OP_THIS) pair.  */
@@ -299,7 +298,13 @@ enum exp_opcode
   /* OP_TYPE is for parsing types, and used with the "ptype" command
      so we can look up types that are qualified by scope, either with
      the GDB "::" operator, or the Modula-2 '.' operator. */
-  OP_TYPE
+  OP_TYPE,
+
+  /* An un-looked-up identifier. */
+  OP_NAME,
+
+  /* An unparsed expression.  Used for Scheme (for now at least) */
+  OP_EXPRSTRING
 };
 
 union exp_element
@@ -342,6 +347,28 @@ extern struct expression *parse_exp_1 PARAMS ((char **, struct block *, int));
    parse_<whatever>, then look at it.  */
 extern struct block *innermost_block;
 
+/* From eval.c */
+
+/* Values of NOSIDE argument to eval_subexp.  */
+
+enum noside
+{
+  EVAL_NORMAL,
+  EVAL_SKIP,                   /* Only effect is to increment pos.  */
+  EVAL_AVOID_SIDE_EFFECTS      /* Don't modify any variables or
+                                  call any functions.  The value
+                                  returned will have the correct
+                                  type, and will have an
+                                  approximately correct lvalue
+                                  type (inaccuracy: anything that is
+                                  listed as being in a register in
+                                  the function in which it was
+                                  declared will be lval_register).  */
+};
+
+extern struct value* evaluate_subexp_standard
+PARAMS ((struct type *, struct expression *, int*, enum noside));
+
 /* From expprint.c */
 
 extern void print_expression PARAMS ((struct expression *, GDB_FILE *));
This page took 0.024537 seconds and 4 git commands to generate.