Module jdk.compiler
Package com.sun.source.tree

## Enum Tree.Kind

- java.lang.Object
- - java.lang.Enum<Tree.Kind>
  - - com.sun.source.tree.Tree.Kind

All Implemented Interfaces:
  Serializable, Comparable<Tree.Kind>

Enclosing interface:
  Tree

    public static enum Tree.Kind
    extends Enum<Tree.Kind>

Enumerates all kinds of trees.

### Enum Constant Summary

Enum Constants
Enum Constant and Description
`AND` Used for instances of `BinaryTree` representing bitwise and logical "and" `&`.
`AND_ASSIGNMENT` Used for instances of `CompoundAssignmentTree` representing bitwise and logical "and" assignment `&=`.
`ANNOTATED_TYPE` Used for instances of `AnnotatedTypeTree` representing annotated types.
`ANNOTATION` Used for instances of `AnnotationTree` representing declaration annotations.
`ANNOTATION_TYPE` Used for instances of `ClassTree` representing annotation types.
`ARRAY_ACCESS` Used for instances of `ArrayAccessTree`.
`ARRAY_TYPE` Used for instances of `ArrayTypeTree`.
`ASSERT` Used for instances of `AssertTree`.
`ASSIGNMENT` Used for instances of `AssignmentTree`.
`BITWISE_COMPLEMENT` Used for instances of `UnaryTree` representing bitwise complement operator `~`.
`BLOCK` Used for instances of `BlockTree`.
`BOOLEAN_LITERAL` Used for instances of `LiteralTree` representing a boolean literal expression of type `boolean`.
`BREAK` Used for instances of `BreakTree`.
`CASE` Used for instances of `CaseTree`.
`CATCH` Used for instances of `CatchTree`.
`CHAR_LITERAL` Used for instances of `LiteralTree` representing a character literal expression of type `char`.
`CLASS` Used for instances of `ClassTree` representing classes.
`COMPILATION_UNIT` Used for instances of `CompilationUnitTree`.
`CONDITIONAL_AND` Used for instances of `BinaryTree` representing conditional-and `&&`.
`CONDITIONAL_EXPRESSION` Used for instances of `ConditionalExpressionTree`.
`CONDITIONAL_OR` Used for instances of `BinaryTree` representing conditional-or `||`.
`CONTINUE` Used for instances of `ContinueTree`.
`DIVIDE` Used for instances of `BinaryTree` representing division `/`.
`DIVIDE_ASSIGNMENT` Used for instances of `CompoundAssignmentTree` representing division assignment `/=`.
`DO_WHILE_LOOP` Used for instances of `DoWhileLoopTree`.
`DOUBLE_LITERAL` Used for instances of `LiteralTree` representing a floating-point literal expression of type `double`.
`EMPTY_STATEMENT` Used for instances of `EmptyStatementTree`.
`ENHANCED_FOR_LOOP` Used for instances of `EnhancedForLoopTree`.
`ENUM` Used for instances of `ClassTree` representing enums.
`EQUAL_TO` Used for instances of `BinaryTree` representing equal-to `==`.
`ERRONEOUS` Used for instances of `ErroneousTree`.
`EXPORTS` Used for instances of `ExportsTree` representing export directives in a module declaration.
`EXPRESSION_STATEMENT` Used for instances of `ExpressionStatementTree`.
`EXTENDS_WILDCARD` Used for instances of `WildcardTree` representing an extends bounded wildcard type argument.
`FLOAT_LITERAL` Used for instances of `LiteralTree` representing a floating-point literal expression of type `float`.
`FOR_LOOP` Used for instances of `ForLoopTree`.
`GREATER_THAN` Used for instances of `BinaryTree` representing greater-than `>`.
`GREATER_THAN_EQUAL` Used for instances of `BinaryTree` representing greater-than-equal `>=`.
`IDENTIFIER` Used for instances of `IdentifierTree`.
`IF` Used for instances of `IfTree`.
`IMPORT` Used for instances of `ImportTree`.
`INSTANCE_OF` Used for instances of `InstanceOfTree`.
`INT_LITERAL` Used for instances of `LiteralTree` representing an integral literal expression of type `int`.
`INTERFACE` Used for instances of `ClassTree` representing interfaces.
`INTERSECTION_TYPE` Used for instances of `IntersectionTypeTree`.
`LABELED_STATEMENT` Used for instances of `LabeledStatementTree`.
`LAMBDA_EXPRESSION` Used for instances of `LambdaExpressionTree`.
`LEFT_SHIFT` Used for instances of `BinaryTree` representing left shift `<<`.
`LEFT_SHIFT_ASSIGNMENT` Used for instances of `CompoundAssignmentTree` representing left shift assignment `<<=`.
`LESS_THAN` Used for instances of `BinaryTree` representing less-than `<`.
`LESS_THAN_EQUAL` Used for instances of `BinaryTree` representing less-than-equal `<=`.
`LOGICAL_COMPLEMENT` Used for instances of `UnaryTree` representing logical complement operator `!`.
`LONG_LITERAL` Used for instances of `LiteralTree` representing an integral literal expression of type `long`.
`MEMBER_REFERENCE` Used for instances of `MemberReferenceTree`.
`MEMBER_SELECT` Used for instances of `MemberSelectTree`.
`METHOD` Used for instances of `MethodTree`.
`METHOD_INVOCATION` Used for instances of `MethodInvocationTree`.
`MINUS` Used for instances of `BinaryTree` representing subtraction `-`.
`MINUS_ASSIGNMENT` Used for instances of `CompoundAssignmentTree` representing subtraction assignment `-=`.
`MODIFIERS` Used for instances of `ModifiersTree`.
`MODULE` Used for instances of `ModuleTree` representing module declarations.
`MULTIPLY` Used for instances of `BinaryTree` representing multiplication `*`.
`MULTIPLY_ASSIGNMENT` Used for instances of `CompoundAssignmentTree` representing multiplication assignment `*=`.
`NEW_ARRAY` Used for instances of `NewArrayTree`.
`NEW_CLASS` Used for instances of `NewClassTree`.
`NOT_EQUAL_TO` Used for instances of `BinaryTree` representing not-equal-to `!=`.
`NULL_LITERAL` Used for instances of `LiteralTree` representing the use of `null`.
`OR` Used for instances of `BinaryTree` representing bitwise and logical "or" `|`.
`OR_ASSIGNMENT` Used for instances of `CompoundAssignmentTree` representing bitwise and logical "or" assignment `|=`.
`OTHER` An implementation-reserved node.
`PACKAGE` Used for instances of `PackageTree`.
`PARAMETERIZED_TYPE` Used for instances of `ParameterizedTypeTree`.
`PARENTHESIZED` Used for instances of `ParenthesizedTree`.
`PLUS` Used for instances of `BinaryTree` representing addition or string concatenation `+`.
`PLUS_ASSIGNMENT` Used for instances of `CompoundAssignmentTree` representing addition or string concatenation assignment `+=`.
`POSTFIX_DECREMENT` Used for instances of `UnaryTree` representing postfix decrement operator `--`.
`POSTFIX_INCREMENT` Used for instances of `UnaryTree` representing postfix increment operator `++`.
`PREFIX_DECREMENT` Used for instances of `UnaryTree` representing prefix decrement operator `--`.
`PREFIX_INCREMENT` Used for instances of `UnaryTree` representing prefix increment operator `++`.
`PRIMITIVE_TYPE` Used for instances of `PrimitiveTypeTree`.
`PROVIDES` Used for instances of `ProvidesTree` representing export directives in a module declaration.
`REMAINDER` Used for instances of `BinaryTree` representing remainder `%`.
`REMAINDER_ASSIGNMENT` Used for instances of `CompoundAssignmentTree` representing remainder assignment `%=`.
`REQUIRES` Used for instances of `RequiresTree` representing export directives in a module declaration.
`RETURN` Used for instances of `ReturnTree`.
`RIGHT_SHIFT` Used for instances of `BinaryTree` representing right shift `>>`.
`RIGHT_SHIFT_ASSIGNMENT` Used for instances of `CompoundAssignmentTree` representing right shift assignment `>>=`.
`STRING_LITERAL` Used for instances of `LiteralTree` representing a string literal expression of type `String`.
`SUPER_WILDCARD` Used for instances of `WildcardTree` representing a super bounded wildcard type argument.
`SWITCH` Used for instances of `SwitchTree`.
`SYNCHRONIZED` Used for instances of `SynchronizedTree`.
`THROW` Used for instances of `ThrowTree`.
`TRY` Used for instances of `TryTree`.
`TYPE_ANNOTATION` Used for instances of `AnnotationTree` representing type annotations.
`TYPE_CAST` Used for instances of `TypeCastTree`.
`TYPE_PARAMETER` Used for instances of `TypeParameterTree`.
`UNARY_MINUS` Used for instances of `UnaryTree` representing unary minus operator `-`.
`UNARY_PLUS` Used for instances of `UnaryTree` representing unary plus operator `+`.
`UNBOUNDED_WILDCARD` Used for instances of `WildcardTree` representing an unbounded wildcard type argument.
`UNION_TYPE` Used for instances of `UnionTypeTree`.
`UNSIGNED_RIGHT_SHIFT` Used for instances of `BinaryTree` representing unsigned right shift `>>>`.
`UNSIGNED_RIGHT_SHIFT_ASSIGNMENT` Used for instances of `CompoundAssignmentTree` representing unsigned right shift assignment `>>>=`.
`USES` Used for instances of `UsesTree` representing export directives in a module declaration.
`VARIABLE` Used for instances of `VariableTree`.
`WHILE_LOOP` Used for instances of `WhileLoopTree`.
`XOR` Used for instances of `BinaryTree` representing bitwise and logical "xor" `^`.
`XOR_ASSIGNMENT` Used for instances of `CompoundAssignmentTree` representing bitwise and logical "xor" assignment `^=`.

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`Class<? extends Tree>` `asInterface()` Returns the associated interface type that uses this kind.
`static Tree.Kind` `valueOf(String name)` Returns the enum constant of this type with the specified name.
`static Tree.Kind[]` `values()` Returns an array containing the constants of this enum type, in the order they are declared.

### Methods inherited from class java.lang.Enum

`clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf`

### Methods inherited from class java.lang.Object

`getClass, notify, notifyAll, wait, wait, wait`

### Enum Constant Detail

#### AND

    public static final Tree.Kind AND

Used for instances of `BinaryTree` representing bitwise and logical "and" `&`.

#### AND_ASSIGNMENT

    public static final Tree.Kind AND_ASSIGNMENT

Used for instances of `CompoundAssignmentTree` representing bitwise and logical "and" assignment `&=`.

#### ANNOTATED_TYPE

    public static final Tree.Kind ANNOTATED_TYPE

Used for instances of `AnnotatedTypeTree` representing annotated types.

#### ANNOTATION

    public static final Tree.Kind ANNOTATION

Used for instances of `AnnotationTree` representing declaration annotations.

#### ANNOTATION_TYPE

    public static final Tree.Kind ANNOTATION_TYPE

Used for instances of `ClassTree` representing annotation types.

#### ARRAY_ACCESS

    public static final Tree.Kind ARRAY_ACCESS

Used for instances of `ArrayAccessTree`.

#### ARRAY_TYPE

    public static final Tree.Kind ARRAY_TYPE

Used for instances of `ArrayTypeTree`.

#### ASSERT

    public static final Tree.Kind ASSERT

Used for instances of `AssertTree`.

#### ASSIGNMENT

    public static final Tree.Kind ASSIGNMENT

Used for instances of `AssignmentTree`.

#### BITWISE_COMPLEMENT

    public static final Tree.Kind BITWISE_COMPLEMENT

Used for instances of `UnaryTree` representing bitwise complement operator `~`.

#### BLOCK

    public static final Tree.Kind BLOCK

Used for instances of `BlockTree`.

#### BOOLEAN_LITERAL

    public static final Tree.Kind BOOLEAN_LITERAL

Used for instances of `LiteralTree` representing a boolean literal expression of type `boolean`.

#### BREAK

    public static final Tree.Kind BREAK

Used for instances of `BreakTree`.

#### CASE

    public static final Tree.Kind CASE

Used for instances of `CaseTree`.

#### CATCH

    public static final Tree.Kind CATCH

Used for instances of `CatchTree`.

#### CHAR_LITERAL

    public static final Tree.Kind CHAR_LITERAL

Used for instances of `LiteralTree` representing a character literal expression of type `char`.

#### CLASS

    public static final Tree.Kind CLASS

Used for instances of `ClassTree` representing classes.

#### COMPILATION_UNIT

    public static final Tree.Kind COMPILATION_UNIT

Used for instances of `CompilationUnitTree`.

#### CONDITIONAL_AND

    public static final Tree.Kind CONDITIONAL_AND

Used for instances of `BinaryTree` representing conditional-and `&&`.

#### CONDITIONAL_EXPRESSION

    public static final Tree.Kind CONDITIONAL_EXPRESSION

Used for instances of `ConditionalExpressionTree`.

#### CONDITIONAL_OR

    public static final Tree.Kind CONDITIONAL_OR

Used for instances of `BinaryTree` representing conditional-or `||`.

#### CONTINUE

    public static final Tree.Kind CONTINUE

Used for instances of `ContinueTree`.

#### DIVIDE

    public static final Tree.Kind DIVIDE

Used for instances of `BinaryTree` representing division `/`.

#### DIVIDE_ASSIGNMENT

    public static final Tree.Kind DIVIDE_ASSIGNMENT

Used for instances of `CompoundAssignmentTree` representing division assignment `/=`.

#### DO_WHILE_LOOP

    public static final Tree.Kind DO_WHILE_LOOP

Used for instances of `DoWhileLoopTree`.

#### DOUBLE_LITERAL

    public static final Tree.Kind DOUBLE_LITERAL

Used for instances of `LiteralTree` representing a floating-point literal expression of type `double`.

#### EMPTY_STATEMENT

    public static final Tree.Kind EMPTY_STATEMENT

Used for instances of `EmptyStatementTree`.

#### ENHANCED_FOR_LOOP

    public static final Tree.Kind ENHANCED_FOR_LOOP

Used for instances of `EnhancedForLoopTree`.

#### ENUM

    public static final Tree.Kind ENUM

Used for instances of `ClassTree` representing enums.

#### EQUAL_TO

    public static final Tree.Kind EQUAL_TO

Used for instances of `BinaryTree` representing equal-to `==`.

#### ERRONEOUS

    public static final Tree.Kind ERRONEOUS

Used for instances of `ErroneousTree`.

#### EXPORTS

    public static final Tree.Kind EXPORTS

Used for instances of `ExportsTree` representing export directives in a module declaration.

#### EXPRESSION_STATEMENT

    public static final Tree.Kind EXPRESSION_STATEMENT

Used for instances of `ExpressionStatementTree`.

#### EXTENDS_WILDCARD

    public static final Tree.Kind EXTENDS_WILDCARD

Used for instances of `WildcardTree` representing an extends bounded wildcard type argument.

#### FLOAT_LITERAL

    public static final Tree.Kind FLOAT_LITERAL

Used for instances of `LiteralTree` representing a floating-point literal expression of type `float`.

#### FOR_LOOP

    public static final Tree.Kind FOR_LOOP

Used for instances of `ForLoopTree`.

#### GREATER_THAN

    public static final Tree.Kind GREATER_THAN

Used for instances of `BinaryTree` representing greater-than `>`.

#### GREATER_THAN_EQUAL

    public static final Tree.Kind GREATER_THAN_EQUAL

Used for instances of `BinaryTree` representing greater-than-equal `>=`.

#### IDENTIFIER

    public static final Tree.Kind IDENTIFIER

Used for instances of `IdentifierTree`.

#### IF

    public static final Tree.Kind IF

Used for instances of `IfTree`.

#### IMPORT

    public static final Tree.Kind IMPORT

Used for instances of `ImportTree`.

#### INSTANCE_OF

    public static final Tree.Kind INSTANCE_OF

Used for instances of `InstanceOfTree`.

#### INT_LITERAL

    public static final Tree.Kind INT_LITERAL

Used for instances of `LiteralTree` representing an integral literal expression of type `int`.

#### INTERFACE

    public static final Tree.Kind INTERFACE

Used for instances of `ClassTree` representing interfaces.

#### INTERSECTION_TYPE

    public static final Tree.Kind INTERSECTION_TYPE

Used for instances of `IntersectionTypeTree`.

#### LABELED_STATEMENT

    public static final Tree.Kind LABELED_STATEMENT

Used for instances of `LabeledStatementTree`.

#### LAMBDA_EXPRESSION

    public static final Tree.Kind LAMBDA_EXPRESSION

Used for instances of `LambdaExpressionTree`.

#### LEFT_SHIFT

    public static final Tree.Kind LEFT_SHIFT

Used for instances of `BinaryTree` representing left shift `<<`.

#### LEFT_SHIFT_ASSIGNMENT

    public static final Tree.Kind LEFT_SHIFT_ASSIGNMENT

Used for instances of `CompoundAssignmentTree` representing left shift assignment `<<=`.

#### LESS_THAN

    public static final Tree.Kind LESS_THAN

Used for instances of `BinaryTree` representing less-than `<`.

#### LESS_THAN_EQUAL

    public static final Tree.Kind LESS_THAN_EQUAL

Used for instances of `BinaryTree` representing less-than-equal `<=`.

#### LOGICAL_COMPLEMENT

    public static final Tree.Kind LOGICAL_COMPLEMENT

Used for instances of `UnaryTree` representing logical complement operator `!`.

#### LONG_LITERAL

    public static final Tree.Kind LONG_LITERAL

Used for instances of `LiteralTree` representing an integral literal expression of type `long`.

#### MEMBER_REFERENCE

    public static final Tree.Kind MEMBER_REFERENCE

Used for instances of `MemberReferenceTree`.

#### MEMBER_SELECT

    public static final Tree.Kind MEMBER_SELECT

Used for instances of `MemberSelectTree`.

#### METHOD

    public static final Tree.Kind METHOD

Used for instances of `MethodTree`.

#### METHOD_INVOCATION

    public static final Tree.Kind METHOD_INVOCATION

Used for instances of `MethodInvocationTree`.

#### MINUS

    public static final Tree.Kind MINUS

Used for instances of `BinaryTree` representing subtraction `-`.

#### MINUS_ASSIGNMENT

    public static final Tree.Kind MINUS_ASSIGNMENT

Used for instances of `CompoundAssignmentTree` representing subtraction assignment `-=`.

#### MODIFIERS

    public static final Tree.Kind MODIFIERS

Used for instances of `ModifiersTree`.

#### MODULE

    public static final Tree.Kind MODULE

Used for instances of `ModuleTree` representing module declarations.

#### MULTIPLY

    public static final Tree.Kind MULTIPLY

Used for instances of `BinaryTree` representing multiplication `*`.

#### MULTIPLY_ASSIGNMENT

    public static final Tree.Kind MULTIPLY_ASSIGNMENT

Used for instances of `CompoundAssignmentTree` representing multiplication assignment `*=`.

#### NEW_ARRAY

    public static final Tree.Kind NEW_ARRAY

Used for instances of `NewArrayTree`.

#### NEW_CLASS

    public static final Tree.Kind NEW_CLASS

Used for instances of `NewClassTree`.

#### NOT_EQUAL_TO

    public static final Tree.Kind NOT_EQUAL_TO

Used for instances of `BinaryTree` representing not-equal-to `!=`.

#### NULL_LITERAL

    public static final Tree.Kind NULL_LITERAL

Used for instances of `LiteralTree` representing the use of `null`.

#### OR

    public static final Tree.Kind OR

Used for instances of `BinaryTree` representing bitwise and logical "or" `|`.

#### OR_ASSIGNMENT

    public static final Tree.Kind OR_ASSIGNMENT

Used for instances of `CompoundAssignmentTree` representing bitwise and logical "or" assignment `|=`.

#### OTHER

    public static final Tree.Kind OTHER

An implementation-reserved node. This is the not the node you are looking for.

#### PACKAGE

    public static final Tree.Kind PACKAGE

Used for instances of `PackageTree`.

Since:
  9

#### PARAMETERIZED_TYPE

    public static final Tree.Kind PARAMETERIZED_TYPE

Used for instances of `ParameterizedTypeTree`.

#### PARENTHESIZED

    public static final Tree.Kind PARENTHESIZED

Used for instances of `ParenthesizedTree`.

#### PLUS

    public static final Tree.Kind PLUS

Used for instances of `BinaryTree` representing addition or string concatenation `+`.

#### PLUS_ASSIGNMENT

    public static final Tree.Kind PLUS_ASSIGNMENT

Used for instances of `CompoundAssignmentTree` representing addition or string concatenation assignment `+=`.

#### POSTFIX_DECREMENT

    public static final Tree.Kind POSTFIX_DECREMENT

Used for instances of `UnaryTree` representing postfix decrement operator `--`.

#### POSTFIX_INCREMENT

    public static final Tree.Kind POSTFIX_INCREMENT

Used for instances of `UnaryTree` representing postfix increment operator `++`.

#### PREFIX_DECREMENT

    public static final Tree.Kind PREFIX_DECREMENT

Used for instances of `UnaryTree` representing prefix decrement operator `--`.

#### PREFIX_INCREMENT

    public static final Tree.Kind PREFIX_INCREMENT

Used for instances of `UnaryTree` representing prefix increment operator `++`.

#### PRIMITIVE_TYPE

    public static final Tree.Kind PRIMITIVE_TYPE

Used for instances of `PrimitiveTypeTree`.

#### PROVIDES

    public static final Tree.Kind PROVIDES

Used for instances of `ProvidesTree` representing export directives in a module declaration.

#### REMAINDER

    public static final Tree.Kind REMAINDER

Used for instances of `BinaryTree` representing remainder `%`.

#### REMAINDER_ASSIGNMENT

    public static final Tree.Kind REMAINDER_ASSIGNMENT

Used for instances of `CompoundAssignmentTree` representing remainder assignment `%=`.

#### REQUIRES

    public static final Tree.Kind REQUIRES

Used for instances of `RequiresTree` representing export directives in a module declaration.

#### RETURN

    public static final Tree.Kind RETURN

Used for instances of `ReturnTree`.

#### RIGHT_SHIFT

    public static final Tree.Kind RIGHT_SHIFT

Used for instances of `BinaryTree` representing right shift `>>`.

#### RIGHT_SHIFT_ASSIGNMENT

    public static final Tree.Kind RIGHT_SHIFT_ASSIGNMENT

Used for instances of `CompoundAssignmentTree` representing right shift assignment `>>=`.

#### STRING_LITERAL

    public static final Tree.Kind STRING_LITERAL

Used for instances of `LiteralTree` representing a string literal expression of type `String`.

#### SUPER_WILDCARD

    public static final Tree.Kind SUPER_WILDCARD

Used for instances of `WildcardTree` representing a super bounded wildcard type argument.

#### SWITCH

    public static final Tree.Kind SWITCH

Used for instances of `SwitchTree`.

#### SYNCHRONIZED

    public static final Tree.Kind SYNCHRONIZED

Used for instances of `SynchronizedTree`.

#### THROW

    public static final Tree.Kind THROW

Used for instances of `ThrowTree`.

#### TRY

    public static final Tree.Kind TRY

Used for instances of `TryTree`.

#### TYPE_ANNOTATION

    public static final Tree.Kind TYPE_ANNOTATION

Used for instances of `AnnotationTree` representing type annotations.

#### TYPE_CAST

    public static final Tree.Kind TYPE_CAST

Used for instances of `TypeCastTree`.

#### TYPE_PARAMETER

    public static final Tree.Kind TYPE_PARAMETER

Used for instances of `TypeParameterTree`.

#### UNARY_MINUS

    public static final Tree.Kind UNARY_MINUS

Used for instances of `UnaryTree` representing unary minus operator `-`.

#### UNARY_PLUS

    public static final Tree.Kind UNARY_PLUS

Used for instances of `UnaryTree` representing unary plus operator `+`.

#### UNBOUNDED_WILDCARD

    public static final Tree.Kind UNBOUNDED_WILDCARD

Used for instances of `WildcardTree` representing an unbounded wildcard type argument.

#### UNION_TYPE

    public static final Tree.Kind UNION_TYPE

Used for instances of `UnionTypeTree`.

#### UNSIGNED_RIGHT_SHIFT

    public static final Tree.Kind UNSIGNED_RIGHT_SHIFT

Used for instances of `BinaryTree` representing unsigned right shift `>>>`.

#### UNSIGNED_RIGHT_SHIFT_ASSIGNMENT

    public static final Tree.Kind UNSIGNED_RIGHT_SHIFT_ASSIGNMENT

Used for instances of `CompoundAssignmentTree` representing unsigned right shift assignment `>>>=`.

#### USES

    public static final Tree.Kind USES

Used for instances of `UsesTree` representing export directives in a module declaration.

#### VARIABLE

    public static final Tree.Kind VARIABLE

Used for instances of `VariableTree`.

#### WHILE_LOOP

    public static final Tree.Kind WHILE_LOOP

Used for instances of `WhileLoopTree`.

#### XOR

    public static final Tree.Kind XOR

Used for instances of `BinaryTree` representing bitwise and logical "xor" `^`.

#### XOR_ASSIGNMENT

    public static final Tree.Kind XOR_ASSIGNMENT

Used for instances of `CompoundAssignmentTree` representing bitwise and logical "xor" assignment `^=`.

### Method Detail

#### values

    public static Tree.Kind[] values()

Returns an array containing the constants of this enum type, in the order they are declared. This method may be used to iterate over the constants as follows:

    for (Tree.Kind c : Tree.Kind.values())
        System.out.println(c);

Returns:
  an array containing the constants of this enum type, in the order they are declared

#### valueOf

    public static Tree.Kind valueOf(String name)

Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)

Parameters:
  `name` - the name of the enum constant to be returned.
Returns:
  the enum constant with the specified name
Throws:
  `IllegalArgumentException` - if this enum type has no constant with the specified name
  `NullPointerException` - if the argument is null

#### asInterface

    public Class<? extends Tree> asInterface()

Returns the associated interface type that uses this kind.

Returns:
  the associated interface