OSDN Git Service

* java-tree.def (THIS_EXPR): Now a tcc_expression.
[pf3gnuchains/gcc-fork.git] / gcc / java / java-tree.def
1 /* Shift right, logical. */
2
3 DEFTREECODE (URSHIFT_EXPR, "urshift_expr", tcc_binary, 2)
4
5 /* Return -1, 0, 1 depending on whether the first argument is
6    less, equal, or greater to the second argument. */
7 DEFTREECODE (COMPARE_EXPR, "compare_expr", tcc_binary, 2)
8
9 /* Same as COMPARE_EXPR, but if either value is NaN, the result is -1. */
10 DEFTREECODE (COMPARE_L_EXPR, "compare_l_expr", tcc_binary, 2)
11 /* Same as COMPARE_EXPR, but if either value is NaN, the result is 1. */
12 DEFTREECODE (COMPARE_G_EXPR, "compare_g_expr", tcc_binary, 2)
13
14 /* Unary plus. Operand 0 is the expression the unary plus is applied
15    to */
16 DEFTREECODE (UNARY_PLUS_EXPR, "unary_plus_expr", tcc_unary, 1)
17
18 /* New array creation expression.
19    Operand 0 is the array base type.
20    Operand 1 is the list of dimension expressions. 
21    Operand 2 is the number of other dimensions of unspecified range.
22    Once patched, the node will bear the type of the created array.  */
23 DEFTREECODE (NEW_ARRAY_EXPR, "new_array_expr", tcc_expression, 3)
24
25 /* New anonymous array creation expression.
26    Operand 0 is the base type of the anonymous array.
27    Operand 1 is the signature of the dimensions this array contains.
28    Operand 2 is the anonymous array initializer.
29    Once patched, the node will bear the type of the created array.  */
30 DEFTREECODE (NEW_ANONYMOUS_ARRAY_EXPR, "new_anonymous_array",
31              tcc_expression, 3)
32
33 /* New class creation expression.
34    Operand 0 is the name of the class to be created
35    Operand 1 is the argument list used to select a constructor.
36    There is no operand 2.  That slot is used for the
37    CALL_EXPR_RTL macro (see preexpand_calls).
38    The type should be the one of the created class.  */
39 DEFTREECODE (NEW_CLASS_EXPR, "new_class_expr", tcc_expression, 3)
40
41 /* Defines `this' as an expression.  */
42 DEFTREECODE (THIS_EXPR, "this", tcc_expression, 0)
43
44 /* A labeled block. Operand 0 is the label that will be generated to
45    mark the end of the block.  Operand 1 is the labeled block body.  */
46 DEFTREECODE (LABELED_BLOCK_EXPR, "labeled_block_expr", tcc_expression, 2)
47
48 /* Exit a labeled block, possibly returning a value.  Operand 0 is a
49    LABELED_BLOCK_EXPR to exit.  */
50 DEFTREECODE (EXIT_BLOCK_EXPR, "exit_block_expr", tcc_statement, 1)
51
52 /* Case statement expression.
53    Operand 1 is the case value.  */
54 DEFTREECODE (CASE_EXPR, "case", tcc_expression, 1)
55
56 /* Default statement expression. */
57 DEFTREECODE (DEFAULT_EXPR, "default", tcc_expression, 0)
58
59 /* Try expression
60    Operand 0 is the tried block,
61    Operand 1 contains chained catch nodes. */
62 DEFTREECODE (TRY_EXPR, "try-catch", tcc_expression, 2)
63
64 /* Catch clause.
65    Operand 0 is the catch clause block, which contains the declaration of
66    the catch clause parameter.  */
67 DEFTREECODE (JAVA_CATCH_EXPR, "catch", tcc_unary, 1)
68
69 /* Synchronized statement.
70    Operand 0 is the expression on which we wish to synchronize,
71    Operand 1 is the synchronized expression block.  */
72 DEFTREECODE (SYNCHRONIZED_EXPR, "synchronized", tcc_expression, 2)
73
74 /* Throw statement.
75    Operand 0 is the throw expression.  */
76 DEFTREECODE (THROW_EXPR, "throw", tcc_unary, 1)
77
78 /* Conditional operator.
79    Operand 0 is the condition expression
80    Operand 1 is the then-value
81    Operand 2 is the else-value.  */
82 DEFTREECODE (CONDITIONAL_EXPR, "?:", tcc_expression, 3)
83
84 /* instanceof operator.
85    Operand 0 is the expression that is getting tested
86    Operand 1 is the class used for the test.  */
87 DEFTREECODE (INSTANCEOF_EXPR, "instanceof", tcc_expression, 2)
88
89 /* Array initializers.
90    Operand 0 is the (sub) array target to initialize, left to NULL_TREE
91    when the node is created.
92    Operand 1 is a CONSTRUCTOR node.  */
93 DEFTREECODE (NEW_ARRAY_INIT, "new_array_init", tcc_unary, 1)
94
95 /* Class literal.
96    Operand 0 is the name of the class we're trying to build a
97    reference from.  */
98 DEFTREECODE (CLASS_LITERAL, "class_literal", tcc_unary, 1)
99
100 /* The Java object within the exception object from the runtime.  */
101 DEFTREECODE (JAVA_EXC_OBJ_EXPR, "java_exc_obj_expr", tcc_expression, 0)
102
103 /* Annotates a tree node (usually an expression) with source location
104    information: a file name (EXPR_WFL_FILENAME);  a line number
105    (EXPR_WFL_LINENO); and column number (EXPR_WFL_COLNO).  It is
106    expanded as the contained node (EXPR_WFL_NODE);  a line note should
107    be emitted first if EXPR_WFL_EMIT_LINE_NOTE.  */
108 #ifdef USE_MAPPED_LOCATION
109 DEFTREECODE (EXPR_WITH_FILE_LOCATION, "expr_with_file_location",
110              tcc_expression, 2)
111 #else
112 DEFTREECODE (EXPR_WITH_FILE_LOCATION, "expr_with_file_location",
113              tcc_expression, 3)
114 #endif
115
116 /*
117 Local variables:
118 mode:c
119 End:
120 */