-/* Shift right, logical. */
+/* This file contains the definitions and documentation for the
+ extra tree codes used by gcj.
+ Copyright (C) 1996, 2007 Free Software Foundation, Inc.
-DEFTREECODE (URSHIFT_EXPR, "urshift_expr", '2', 2)
+This file is part of GCC.
-/* 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)
+GCC is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 2, or (at your option) any later
+version.
-/* 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)
+GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
-/* Unary plus. Operand 0 is the expression the unary plus is applied
- to */
-DEFTREECODE (UNARY_PLUS_EXPR, "unary_plus_expr", '1', 1)
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING. If not, write to the Free
+Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301, USA. */
-/* 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)
+/* Shift right, logical. */
+DEFTREECODE (URSHIFT_EXPR, "urshift_expr", tcc_binary, 2)
-/* 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)
+/* Return -1, 0, 1 depending on whether the first argument is
+ less, equal, or greater to the second argument. */
+DEFTREECODE (COMPARE_EXPR, "compare_expr", tcc_binary, 2)
-/* Defines `this' as an expression. */
-DEFTREECODE (THIS_EXPR, "this", '1', 0)
+/* Same as COMPARE_EXPR, but if either value is NaN, the result is -1. */
+DEFTREECODE (COMPARE_L_EXPR, "compare_l_expr", tcc_binary, 2)
+/* Same as COMPARE_EXPR, but if either value is NaN, the result is 1. */
+DEFTREECODE (COMPARE_G_EXPR, "compare_g_expr", tcc_binary, 2)
-/* Case statement expression.
- Operand 1 is the case value. */
-DEFTREECODE (CASE_EXPR, "case", 'e', 1)
+/* A labeled block. Operand 0 is the label that will be generated to
+ mark the end of the block. Operand 1 is the labeled block body. */
+DEFTREECODE (LABELED_BLOCK_EXPR, "labeled_block_expr", tcc_expression, 2)
-/* Default statement expression. */
-DEFTREECODE (DEFAULT_EXPR, "default", 'e', 0)
+/* Exit a labeled block, possibly returning a value. Operand 0 is a
+ LABELED_BLOCK_EXPR to exit. */
+DEFTREECODE (EXIT_BLOCK_EXPR, "exit_block_expr", tcc_statement, 1)
/* 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 expression. */
-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)
-
-/* The Java object within the exception object from the runtime. */
-DEFTREECODE (JAVA_EXC_OBJ_EXPR, "java_exc_obj_expr", 'e', 0)
+DEFTREECODE (TRY_EXPR, "try-catch", tcc_expression, 2)
/*
Local variables: