/* 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 anonymous array creation expression. Operand 0 is the base type of the anonymous array. Operand 1 is the signature of the dimensions this array contains. Operand 2 is the anonymous array initializer. Once patched, the node will bear the type of the created array. */ DEFTREECODE (NEW_ANONYMOUS_ARRAY_EXPR, "new_anonymous_array", '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", 'x', 1) /* Default statement expression. */ DEFTREECODE (DEFAULT_EXPR, "default", 'x', 0) /* Try expression Operand 0 is the tried block, Operand 1 contains chained catch nodes. */ DEFTREECODE (TRY_EXPR, "try-catch", 'e', 2) /* Catch clause. Operand 0 is the catch clause block, which contains the declaration of the catch clause parameter. */ DEFTREECODE (CATCH_EXPR, "catch", '1', 1) /* Synchronized statement. Operand 0 is the expression on which we wish 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) /* Conditional operator. Operand 0 is the condition expression Operand 1 is the then-value Operand 2 is the else-value. */ DEFTREECODE (CONDITIONAL_EXPR, "?:", 'e', 3) /* instanceof operator. Operand 0 is the expression that is getting tested Operand 1 is the class used for the test. */ DEFTREECODE (INSTANCEOF_EXPR, "instanceof", 'e', 2) /* Array initializers. Operand 0 is the (sub) array target to initialize, left to NULL_TREE when the node is created. Operand 1 is a CONSTRUCTOR node. */ DEFTREECODE (NEW_ARRAY_INIT, "new_array_init", '1', 1) /* Class literal. Operand 0 is the name of the class we're trying to build a reference from. */ DEFTREECODE (CLASS_LITERAL, "class_literal", '1', 1) /* Instance initializer. Operand 0 contains the intance initializer statement. This tree node is used for context detection, so that special rules can be enforced. */ DEFTREECODE (INSTANCE_INITIALIZERS_EXPR, "instance_initializers_expr", '1', 1)