daily update
[deliverable/binutils-gdb.git] / gdb / expression.h
index 4590febe804fb41a91261697670febbdc33cfafd..a6f966a8eea84be249abb3416ca8d2c0979a9d87 100644 (file)
@@ -1,7 +1,7 @@
 /* Definitions for expressions stored in reversed prefix form, for GDB.
 
-   Copyright (C) 1986, 1989, 1992, 1994, 2000, 2003, 2005, 2007, 2008
-   Free Software Foundation, Inc.
+   Copyright (C) 1986, 1989, 1992, 1994, 2000, 2003, 2005, 2007, 2008, 2009,
+   2010 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -88,6 +88,13 @@ enum exp_opcode
        when X is a pointer instead of an aggregate.  */
     STRUCTOP_MPTR,
 
+    /* TYPE_INSTANCE is used when the user specifies a specific
+       type instantiation for overloaded methods/functions.
+
+       The format is:
+       TYPE_INSTANCE num_types type0 ... typeN num_types TYPE_INSTANCE  */
+    TYPE_INSTANCE,
+
     /* end of C++.  */
 
     /* For Modula-2 integer division DIV */
@@ -101,8 +108,6 @@ enum exp_opcode
 
     /* Modula-2 standard (binary) procedures */
     BINOP_VAL,
-    BINOP_INCL,
-    BINOP_EXCL,
 
     /* Concatenate two operands, such as character strings or bitstrings.
        If the first operand is a integer expression, then it means concatenate
@@ -193,8 +198,9 @@ enum exp_opcode
        indicates that we have found something of the form <name> ( <stuff> ) */
     OP_F77_UNDETERMINED_ARGLIST,
 
-    /* The following OP is a special one, it introduces a F77 complex
-       literal. It is followed by exactly two args that are doubles.  */
+    /* OP_COMPLEX takes a type in the following element, followed by another
+       OP_COMPLEX, making three exp_elements.  It is followed by two double
+       args, and converts them into a complex number of the given type. */
     OP_COMPLEX,
 
     /* OP_STRING represents a string constant.
@@ -225,6 +231,12 @@ enum exp_opcode
        It casts the value of the following subexpression.  */
     UNOP_CAST,
 
+    /* The C++ dynamic_cast operator.  */
+    UNOP_DYNAMIC_CAST,
+
+    /* The C++ reinterpret_cast operator.  */
+    UNOP_REINTERPRET_CAST,
+
     /* UNOP_MEMVAL is followed by a type pointer in the next exp_element
        With another UNOP_MEMVAL at the end, this makes three exp_elements.
        It casts the contents of the word addressed by the value of the
@@ -265,9 +277,6 @@ enum exp_opcode
     UNOP_ODD,
     UNOP_TRUNC,
 
-    /* (The deleted) Chill builtin functions.  */
-    UNOP_LOWER, UNOP_UPPER, UNOP_LENGTH, UNOP_CARD, UNOP_CHMAX, UNOP_CHMIN,
-
     OP_BOOL,                   /* Modula-2 builtin BOOLEAN type */
     OP_M2_STRING,              /* Modula-2 string constants */
 
@@ -333,25 +342,32 @@ enum exp_opcode
        Then comes another OP_DECFLOAT.  */
     OP_DECFLOAT,
 
+    /* OP_ADL_FUNC specifies that the function is to be looked up in an
+       Argument Dependent manner (Koenig lookup).  */
+    OP_ADL_FUNC,
+
      /* First extension operator.  Individual language modules define
-        extra operators they need as constants with values 
-        OP_LANGUAGE_SPECIFIC0 + k, for k >= 0, using a separate 
-        enumerated type definition:
-           enum foo_extension_operator {
+       extra operators in *.inc include files below always starting with
+       numbering at OP_EXTENDED0:
              BINOP_MOGRIFY = OP_EXTENDED0,
             BINOP_FROB,
-            ...
-           };      */
+            ...  */
     OP_EXTENDED0,
   
     /* Last possible extension operator.  Defined to provide an
        explicit and finite number of extended operators. */
-    OP_EXTENDED_LAST = 0xff
+    OP_EXTENDED_LAST = 0xff,
     /* NOTE: Eventually, we expect to convert to an object-oriented 
        formulation for expression operators that does away with the
        need for these extension operators, and indeed for this
        entire enumeration type.  Therefore, consider the OP_EXTENDED
        definitions to be a temporary measure. */
+
+    /* Each language specific set of operators starts at OP_EXTENDED0.  */
+#include "ada-operator.inc"
+
+    /* Existing only to swallow the last comma (',') from last .inc file.  */
+    OP_UNUSED_LAST
   };
 
 union exp_element
This page took 0.026262 seconds and 4 git commands to generate.