2000-03-22 Alexandre Petit-Bianco <apbianco@cygnus.com> * parse.y (check_abstract_method_definitions): New local `end_type_reached'. Make sure we also consider `end_type'. (java_check_abstract_method_definitions): Make sure we also eventually consider `java.lang.Object'. (maybe_use_access_method): Don't use access method if not a pure inner class or if the method's context is right. (find_applicable_accessible_methods_list): New static `object_done'. Don't search abstract classes as interfaces. Fixed indentation. Fixed the `java.lang.Object' only search. Search class' interface(s) first, fully search enclosing contexts. (find_most_specific_methods_list): Pick closest candidates when they're all abstract. 2000-03-17 Alexandre Petit-Bianco <apbianco@cygnus.com> * parse.y (check_method_types_complete): New function. (create_class): Reset anonymous class counter only when seeing an non inner classe. (java_complete_class): JDEP_METHOD: Don't recompute signature if incomplete. 2000-03-17 Alexandre Petit-Bianco <apbianco@cygnus.com> * class.c (build_static_ref): Fixed indentation in comment. * java-tree.def (TRY_EXPR): Fixed typo in name. (CLASS_LITERAL): Likewise. * java-tree.h: (TYPE_DOT_CLASS): New macro. (struct lang_type): New field `dot_class'. * jcf-write.c (generate_bytecode_insns): Fixed error message. (generate_classfile): Method `class$' is synthetic. * parse.y (build_do_class_method): New function. (build_dot_class_method_invocation): Likewise. (java_complete_expand_methods): Expand TYPE_DOT_CLASS if necessary. (resolve_qualified_expression_name): Handle CLASS_LITERAL. (qualify_ambiguous_name): Likewise. (patch_incomplete_class_ref): Invoke synthetic method if necessary. (build_try_statement): Fixed leading comment. 2000-03-15 Alexandre Petit-Bianco <apbianco@cygnus.com> * parse.h (INNER_ENCLOSING_SCOPE_CHECK): Disregard anonymous classes. * parse.y (patch_method_invocation): Handle anonymous classes creation in static context. 2000-03-15 Alexandre Petit-Bianco <apbianco@cygnus.com> * parse.h (INNER_ENCLOSING_SCOPE_CHECK): New macro. * parse.y (resolve_qualified_expression_name): Use it. (patch_method_invocation): Likewise. 2000-03-15 Alexandre Petit-Bianco <apbianco@cygnus.com> * parse.y (register_incomplete_type): JDEP_ENCLOSING set depending on the type of dependency which dictates what the current class is. (unresolved_type_p): Resolved types limited to the current class. (For details, see: http://gcc.gnu.org/ml/gcc-patches/2000-03/msg00790.html) From-SVN: r32701
96 lines
3.5 KiB
Modula-2
96 lines
3.5 KiB
Modula-2
/* 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)
|