1 |
12 |
jlechner |
/* 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_unary, 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 |
|
|
*/
|