The table below begins with constants, moves on to unary expressions, then proceeds to binary expressions, and concludes with various other kinds of expressions:
INTEGER_CSTTREE_TYPE; they are not always of type
int.  In particular, char constants are represented with
INTEGER_CST nodes.  The value of the integer constant e is
represented in an array of HOST_WIDE_INT.   There are enough elements
in the array to represent the value without taking extra elements for
redundant 0s or -1.  The number of elements used to represent e
is available via TREE_INT_CST_NUNITS. Element i can be
extracted by using TREE_INT_CST_ELT (e, i). 
TREE_INT_CST_LOW is a shorthand for TREE_INT_CST_ELT (e, 0).
     The functions tree_fits_shwi_p and tree_fits_uhwi_p
can be used to tell if the value is small enough to fit in a
signed HOST_WIDE_INT or an unsigned HOST_WIDE_INT respectively. 
The value can then be extracted using tree_to_shwi and
tree_to_uhwi.
     
REAL_CSTFIXED_CSTTREE_TYPE.  TREE_FIXED_CST_PTR points to
a struct fixed_value;  TREE_FIXED_CST returns the structure
itself.  struct fixed_value contains data with the size of two
HOST_BITS_PER_WIDE_INT and mode as the associated fixed-point
machine mode for data.
     COMPLEX_CST__complex__ whose parts are constant nodes.  The
TREE_REALPART and TREE_IMAGPART return the real and the
imaginary parts respectively.
     VECTOR_CSTTREE_LIST of the
constant nodes and is accessed through TREE_VECTOR_CST_ELTS.
     STRING_CSTTREE_STRING_LENGTH
returns the length of the string, as an int.  The
TREE_STRING_POINTER is a char* containing the string
itself.  The string may not be NUL-terminated, and it may contain
embedded NUL characters.  Therefore, the
TREE_STRING_LENGTH includes the trailing NUL if it is
present.
     For wide string constants, the TREE_STRING_LENGTH is the number
of bytes in the string, and the TREE_STRING_POINTER
points to an array of the bytes of the string, as represented on the
target system (that is, as integers in the target endianness).  Wide and
non-wide string constants are distinguished only by the TREE_TYPE
of the STRING_CST.
     
FIXME: The formats of string constants are not well-defined when the target system bytes are not the same width as host system bytes.