2011-01-31 Paul Pluzhnikov <ppluzhnikov@google.com>
[deliverable/binutils-gdb.git] / gdb / expression.h
index a6f966a8eea84be249abb3416ca8d2c0979a9d87..dc26d3b95f738a8cdc1df25d04dede6f23c49580 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, 2009,
-   2010 Free Software Foundation, Inc.
+   2010, 2011 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -22,7 +22,7 @@
 #define EXPRESSION_H 1
 
 
-#include "symtab.h"            /* Needed for "struct block" type. */
+#include "symtab.h"            /* Needed for "struct block" type.  */
 #include "doublest.h"          /* Needed for DOUBLEST.  */
 
 
@@ -81,7 +81,7 @@ enum exp_opcode
     BINOP_MAX,                 /* >? */
 
     /* STRUCTOP_MEMBER is used for pointer-to-member constructs.
-       X . * Y translates into X STRUCTOP_MEMBER Y.  */
+       X .  * Y translates into X STRUCTOP_MEMBER Y.  */
     STRUCTOP_MEMBER,
 
     /* STRUCTOP_MPTR is used for pointer-to-member constructs
@@ -92,12 +92,12 @@ enum exp_opcode
        type instantiation for overloaded methods/functions.
 
        The format is:
-       TYPE_INSTANCE num_types type0 ... typeN num_types TYPE_INSTANCE  */
+       TYPE_INSTANCE num_types type0 ... typeN num_types TYPE_INSTANCE.  */
     TYPE_INSTANCE,
 
     /* end of C++.  */
 
-    /* For Modula-2 integer division DIV */
+    /* For Modula-2 integer division DIV */
     BINOP_INTDIV,
 
     BINOP_ASSIGN_MODIFY,       /* +=, -=, *=, and so on.
@@ -106,19 +106,19 @@ enum exp_opcode
                                   Then comes another BINOP_ASSIGN_MODIFY,
                                   making three exp_elements in total.  */
 
-    /* Modula-2 standard (binary) procedures */
+    /* Modula-2 standard (binary) procedures */
     BINOP_VAL,
 
     /* Concatenate two operands, such as character strings or bitstrings.
        If the first operand is a integer expression, then it means concatenate
-       the second operand with itself that many times. */
+       the second operand with itself that many times.  */
     BINOP_CONCAT,
 
-    /* For (the deleted) Chill and Pascal. */
-    BINOP_IN,                  /* Returns 1 iff ARG1 IN ARG2. */
+    /* For (the deleted) Chill and Pascal.  */
+    BINOP_IN,                  /* Returns 1 iff ARG1 IN ARG2.  */
 
     /* This is the "colon operator" used various places in (the
-       deleted) Chill. */
+       deleted) Chill.  */
     BINOP_RANGE,
 
     /* This must be the highest BINOP_ value, for expprint.c.  */
@@ -133,14 +133,14 @@ enum exp_opcode
 
     /* A sub-string/sub-array.  (The deleted) Chill syntax: OP1(OP2 UP
        OP3).  Return OP3 elements of OP1, starting with element
-       OP2. */
+       OP2.  */
     TERNOP_SLICE_COUNT,
 
     /* Multidimensional subscript operator, such as Modula-2 x[a,b,...].
        The dimensionality is encoded in the operator, like the number of
        function arguments in OP_FUNCALL, I.E. <OP><dimension><OP>.
        The value of the first following subexpression is subscripted
-       by each of the next following subexpressions, one per dimension. */
+       by each of the next following subexpressions, one per dimension.  */
     MULTI_SUBSCRIPT,
 
     /* The OP_... series take immediate following arguments.
@@ -153,14 +153,16 @@ enum exp_opcode
        Thus, the operation occupies four exp_elements.  */
     OP_LONG,
 
-    /* OP_DOUBLE is similar but takes a DOUBLEST constant instead of a long.  */
+    /* OP_DOUBLE is similar but takes a DOUBLEST constant instead of a
+       long.  */
     OP_DOUBLE,
 
     /* OP_VAR_VALUE takes one struct block * in the following element,
-       and one struct symbol * in the following exp_element, followed by
-       another OP_VAR_VALUE, making four exp_elements.  If the block is
-       non-NULL, evaluate the symbol relative to the innermost frame
-       executing in that block; if the block is NULL use the selected frame.  */
+       and one struct symbol * in the following exp_element, followed
+       by another OP_VAR_VALUE, making four exp_elements.  If the
+       block is non-NULL, evaluate the symbol relative to the
+       innermost frame executing in that block; if the block is NULL
+       use the selected frame.  */
     OP_VAR_VALUE,
 
     /* OP_LAST is followed by an integer in the next exp_element.
@@ -173,8 +175,9 @@ enum exp_opcode
        This is the name of a register to fetch.  */
     OP_REGISTER,
 
-    /* OP_INTERNALVAR is followed by an internalvar ptr in the next exp_element.
-       With another OP_INTERNALVAR at the end, this makes three exp_elements.  */
+    /* OP_INTERNALVAR is followed by an internalvar ptr in the next
+       exp_element.  With another OP_INTERNALVAR at the end, this
+       makes three exp_elements.  */
     OP_INTERNALVAR,
 
     /* OP_FUNCALL is followed by an integer in the next exp_element.
@@ -185,22 +188,24 @@ enum exp_opcode
        making three exp_elements.  */
     OP_FUNCALL,
 
-    /* OP_OBJC_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_OBJC_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_OBJC_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 
-       only be disambiguated at runtime.  Thus this operator, which 
-       indicates that we have found something of the form <name> ( <stuff> ) */
+    /* 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 only be disambiguated at runtime.  Thus this operator,
+       which indicates that we have found something of the form
+       <name> ( <stuff> ).  */
     OP_F77_UNDETERMINED_ARGLIST,
 
     /* 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. */
+       args, and converts them into a complex number of the given type.  */
     OP_COMPLEX,
 
     /* OP_STRING represents a string constant.
@@ -223,7 +228,7 @@ enum exp_opcode
        The bounds are used to compute the number of following subexpressions
        to consume, as well as setting the bounds in the created array constant.
        The type of the elements is taken from the type of the first subexp,
-       and they must all match. */
+       and they must all match.  */
     OP_ARRAY,
 
     /* UNOP_CAST is followed by a type pointer in the next exp_element.
@@ -298,11 +303,12 @@ enum exp_opcode
        It just comes in a tight (OP_THIS, OP_THIS) pair.  */
     OP_THIS,
 
-    /* Objective-C: OP_OBJC_SELF is just a placeholder for the class instance
-       variable.  It just comes in a tight (OP_OBJC_SELF, OP_OBJC_SELF) pair.  */
+    /* Objective-C: OP_OBJC_SELF is just a placeholder for the class
+       instance variable.  It just comes in a tight (OP_OBJC_SELF,
+       OP_OBJC_SELF) pair.  */
     OP_OBJC_SELF,
 
-    /* Objective C: "@selector" pseudo-operator */
+    /* Objective C: "@selector" pseudo-operator */
     OP_OBJC_SELECTOR,
 
     /* OP_SCOPE surrounds a type name and a field name.  The type
@@ -320,18 +326,18 @@ enum exp_opcode
        represented as if it were .NAME1:(.NAME2:VALUE) (though that is
        not valid (the deleted) Chill syntax).
 
-       The NAME is represented as for STRUCTOP_STRUCT;  VALUE follows. */
+       The NAME is represented as for STRUCTOP_STRUCT;  VALUE follows.  */
     OP_LABELED,
 
     /* 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. */
+       the GDB "::" operator, or the Modula-2 '.' operator.  */
     OP_TYPE,
 
-    /* An un-looked-up identifier. */
+    /* An un-looked-up identifier.  */
     OP_NAME,
 
-    /* An Objective C Foundation Class NSString constant */
+    /* An Objective C Foundation Class NSString constant */
     OP_OBJC_NSSTRING,
 
     /* A F90 array range operator (for "exp:exp", "exp:", ":exp" and ":").  */
@@ -355,13 +361,13 @@ enum exp_opcode
     OP_EXTENDED0,
   
     /* Last possible extension operator.  Defined to provide an
-       explicit and finite number of extended operators. */
+       explicit and finite number of extended operators.  */
     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. */
+       definitions to be a temporary measure.  */
 
     /* Each language specific set of operators starts at OP_EXTENDED0.  */
 #include "ada-operator.inc"
@@ -388,14 +394,15 @@ union exp_element
 
 struct expression
   {
-    const struct language_defn *language_defn; /* language it was entered in */
-    struct gdbarch *gdbarch;  /* architecture it was parsed in */
+    const struct language_defn *language_defn; /* language it was
+                                                  entered in.  */
+    struct gdbarch *gdbarch;  /* architecture it was parsed in.  */
     int nelts;
     union exp_element elts[1];
   };
 
 /* Macros for converting between number of expression elements and bytes
-   to store that many expression elements. */
+   to store that many expression elements.  */
 
 #define EXP_ELEM_TO_BYTES(elements) \
     ((elements) * sizeof (union exp_element))
@@ -447,7 +454,8 @@ extern void print_expression (struct expression *, struct ui_file *);
 
 extern char *op_string (enum exp_opcode);
 
-extern void dump_raw_expression (struct expression *, struct ui_file *, char *);
+extern void dump_raw_expression (struct expression *,
+                                struct ui_file *, char *);
 extern void dump_prefix_expression (struct expression *, struct ui_file *);
 
 #endif /* !defined (EXPRESSION_H) */
This page took 0.027977 seconds and 4 git commands to generate.