package com.sun.source.tree;
import checkers.javari.quals.*;
public interface Tree {
@ReadOnly public enum Kind {
ANNOTATION(AnnotationTree.class),
ARRAY_ACCESS(ArrayAccessTree.class),
ARRAY_TYPE(ArrayTypeTree.class),
ASSERT(AssertTree.class),
ASSIGNMENT(AssignmentTree.class),
BLOCK(BlockTree.class),
BREAK(BreakTree.class),
CASE(CaseTree.class),
CATCH(CatchTree.class),
CLASS(ClassTree.class),
COMPILATION_UNIT(CompilationUnitTree.class),
CONDITIONAL_EXPRESSION(ConditionalExpressionTree.class),
CONTINUE(ContinueTree.class),
DO_WHILE_LOOP(DoWhileLoopTree.class),
ENHANCED_FOR_LOOP(EnhancedForLoopTree.class),
EXPRESSION_STATEMENT(ExpressionStatementTree.class),
MEMBER_SELECT(MemberSelectTree.class),
FOR_LOOP(ForLoopTree.class),
IDENTIFIER(IdentifierTree.class),
IF(IfTree.class),
IMPORT(ImportTree.class),
INSTANCE_OF(InstanceOfTree.class),
LABELED_STATEMENT(LabeledStatementTree.class),
METHOD(MethodTree.class),
METHOD_INVOCATION(MethodInvocationTree.class),
MODIFIERS(ModifiersTree.class),
NEW_ARRAY(NewArrayTree.class),
NEW_CLASS(NewClassTree.class),
PARENTHESIZED(ParenthesizedTree.class),
PRIMITIVE_TYPE(PrimitiveTypeTree.class),
RETURN(ReturnTree.class),
EMPTY_STATEMENT(EmptyStatementTree.class),
SWITCH(SwitchTree.class),
SYNCHRONIZED(SynchronizedTree.class),
THROW(ThrowTree.class),
TRY(TryTree.class),
PARAMETERIZED_TYPE(ParameterizedTypeTree.class),
TYPE_CAST(TypeCastTree.class),
TYPE_PARAMETER(TypeParameterTree.class),
VARIABLE(VariableTree.class),
WHILE_LOOP(WhileLoopTree.class),
POSTFIX_INCREMENT(UnaryTree.class),
POSTFIX_DECREMENT(UnaryTree.class),
PREFIX_INCREMENT(UnaryTree.class),
PREFIX_DECREMENT(UnaryTree.class),
UNARY_PLUS(UnaryTree.class),
UNARY_MINUS(UnaryTree.class),
BITWISE_COMPLEMENT(UnaryTree.class),
LOGICAL_COMPLEMENT(UnaryTree.class),
MULTIPLY(BinaryTree.class),
DIVIDE(BinaryTree.class),
REMAINDER(BinaryTree.class),
PLUS(BinaryTree.class),
MINUS(BinaryTree.class),
LEFT_SHIFT(BinaryTree.class),
RIGHT_SHIFT(BinaryTree.class),
UNSIGNED_RIGHT_SHIFT(BinaryTree.class),
LESS_THAN(BinaryTree.class),
GREATER_THAN(BinaryTree.class),
LESS_THAN_EQUAL(BinaryTree.class),
GREATER_THAN_EQUAL(BinaryTree.class),
EQUAL_TO(BinaryTree.class),
NOT_EQUAL_TO(BinaryTree.class),
AND(BinaryTree.class),
XOR(BinaryTree.class),
OR(BinaryTree.class),
CONDITIONAL_AND(BinaryTree.class),
CONDITIONAL_OR(BinaryTree.class),
MULTIPLY_ASSIGNMENT(CompoundAssignmentTree.class),
DIVIDE_ASSIGNMENT(CompoundAssignmentTree.class),
REMAINDER_ASSIGNMENT(CompoundAssignmentTree.class),
PLUS_ASSIGNMENT(CompoundAssignmentTree.class),
MINUS_ASSIGNMENT(CompoundAssignmentTree.class),
LEFT_SHIFT_ASSIGNMENT(CompoundAssignmentTree.class),
RIGHT_SHIFT_ASSIGNMENT(CompoundAssignmentTree.class),
UNSIGNED_RIGHT_SHIFT_ASSIGNMENT(CompoundAssignmentTree.class),
AND_ASSIGNMENT(CompoundAssignmentTree.class),
ANNOTATED_TYPE(AnnotatedTypeTree.class),
XOR_ASSIGNMENT(CompoundAssignmentTree.class),
OR_ASSIGNMENT(CompoundAssignmentTree.class),
INT_LITERAL(LiteralTree.class),
LONG_LITERAL(LiteralTree.class),
FLOAT_LITERAL(LiteralTree.class),
DOUBLE_LITERAL(LiteralTree.class),
BOOLEAN_LITERAL(LiteralTree.class),
CHAR_LITERAL(LiteralTree.class),
STRING_LITERAL(LiteralTree.class),
NULL_LITERAL(LiteralTree.class),
UNBOUNDED_WILDCARD(WildcardTree.class),
EXTENDS_WILDCARD(WildcardTree.class),
SUPER_WILDCARD(WildcardTree.class),
ERRONEOUS(ErroneousTree.class),
OTHER(null);
Kind(Class<? extends Tree> intf) {
throw new RuntimeException("skeleton method");
}
public Class<? extends Tree> asInterface() {
throw new RuntimeException("skeleton method");
}
private final Class<? extends Tree> associatedInterface;
}
@PolyRead Kind getKind() @PolyRead;
<R,D> R accept(TreeVisitor<R,D> visitor, D data) @ReadOnly;
}