/* Shift right, logical. */

DEFTREECODE (URSHIFT_EXPR, "urshift_expr", '2', 2)

/* Return -1, 0, 1 depending on whether the first argument is
   less, equal, or greater to the second argument. */
DEFTREECODE (COMPARE_EXPR, "compare_expr", '2', 2)

/* Same as COMPARE_EXPR, but if either value is NaN, the result is -1. */
DEFTREECODE (COMPARE_L_EXPR, "compare_l_expr", '2', 2)
/* Same as COMPARE_EXPR, but if either value is NaN, the result is 1. */
DEFTREECODE (COMPARE_G_EXPR, "compare_g_expr", '2', 2)

/* Unary plus. Operand 0 is the expression the unary plus is applied
   to */
DEFTREECODE (UNARY_PLUS_EXPR, "unary_plus_expr", '1', 1)

/* New array creation expression.
   Operand 0 is the array base type.
   Operand 1 is the list of dimension expressions. 
   Operand 2 is the number of other dimensions of unspecified range.
   Once patched, the node will bear the type of the created array.  */
DEFTREECODE (NEW_ARRAY_EXPR, "new_array_expr", 'e', 3)

/* New class creation expression.
   Operand 0 is the name of the class to be created
   Operand 1 is the argument list used to select a constructor.
   There is no operand 2.  That slot is used for the
   CALL_EXPR_RTL macro (see preexpand_calls).
   The type should be the one of the created class.  */
DEFTREECODE (NEW_CLASS_EXPR, "new_class_expr", 'e', 3)

/* Defines `this' as an expression.  */
DEFTREECODE (THIS_EXPR, "this", '1', 0)

/* Case statement expression.
   Operand 1 is the case value.  */
DEFTREECODE (CASE_EXPR, "case", '1', 1)

/* Default statement expression. */
DEFTREECODE (DEFAULT_EXPR, "default", '1', 0)

/* Try expression
   Operand 0 is the tried block,
   Operand 1 contains chained catch nodes
   Operand 2 contains the finally clause.  */
DEFTREECODE (TRY_EXPR, "try-catch-finally", 'e', 3)

/* Catch clause.
   Operand 0 is the catch clause block, which contains the declaration of
   the catch clause parameter.  */
DEFTREECODE (CATCH_EXPR, "catch", '1', 1)

/* Finally clause.
   Operand 0 is the finally label.
   Operand 1 is the finally block.  */
DEFTREECODE (FINALLY_EXPR, "finally", 'e', 2) 

/* Synchronized statement.
   Operand 0 is the expression on which we whish to synchronize,
   Operand 1 is the synchronized expression block.  */
DEFTREECODE (SYNCHRONIZED_EXPR, "synchronized", 'e', 2)

/* Throw statement.
   Operand 0 is the throw expresion.  */
DEFTREECODE (THROW_EXPR, "throw", '1', 1)
