# Uses of Package
com.sun.source.tree

- Packages that use com.sun.source.tree
  Package | Description
  --- | ---
  com.sun.source.tree | Provides interfaces to represent source code as abstract syntax trees (AST).
  com.sun.source.util | Provides utilities for operations on abstract syntax trees (AST).

- Classes in com.sun.source.tree used by com.sun.source.tree
  Class | Description
  --- | ---
  AnnotatedTypeTree | A tree node for an annotated type.
  AnnotationTree | A tree node for an annotation.
  ArrayAccessTree | A tree node for an array access expression.
  ArrayTypeTree | A tree node for an array type.
  AssertTree | A tree node for an `assert` statement.
  AssignmentTree | A tree node for an assignment expression.
  BinaryTree | A tree node for a binary expression.
  BlockTree | A tree node for a statement block.
  BreakTree | A tree node for a `break` statement.
  CaseTree | A tree node for a `case` in a `switch` statement or expression.
  CaseTree.CaseKind | Deprecated, for removal: This API element is subject to removal in a future version. This enum is used to model a rule case, which is part of a preview feature and may be removed if the preview feature is removed.
  CatchTree | A tree node for a `catch` block in a `try` statement.
  ClassTree | A tree node for a class, interface, enum, or annotation type declaration.
  CompilationUnitTree | Represents the abstract syntax tree for compilation units (source files) and package declarations (package-info.java).
  CompoundAssignmentTree | A tree node for compound assignment operator.
  ConditionalExpressionTree | A tree node for the conditional operator ?
  ContinueTree | A tree node for a `continue` statement.
  DirectiveTree | A super-type for all the directives in a ModuleTree.
  DoWhileLoopTree | A tree node for a `do` statement.
  EmptyStatementTree | A tree node for an empty (skip) statement.
  EnhancedForLoopTree | A tree node for an "enhanced" `for` loop statement.
  ErroneousTree | A tree node to stand in for a malformed expression.
  ExportsTree | A tree node for an 'exports' directive in a module declaration.
  ExpressionStatementTree | A tree node for an expression statement.
  ExpressionTree | A tree node used as the base class for the different types of expressions.
  ForLoopTree | A tree node for a basic `for` loop statement.
  IdentifierTree | A tree node for an identifier expression.
  IfTree | A tree node for an `if` statement.
  ImportTree | A tree node for an import declaration.
  InstanceOfTree | A tree node for an `instanceof` expression.
  IntersectionTypeTree | A tree node for an intersection type in a cast expression.
  LabeledStatementTree | A tree node for a labeled statement.
  LambdaExpressionTree | A tree node for a lambda expression.
  LambdaExpressionTree.BodyKind | Lambda expressions come in two forms: expression lambdas, whose body is an expression, and statement lambdas, whose body is a block
  LineMap | Provides methods to convert between character positions and line numbers for a compilation unit.
  LiteralTree | A tree node for a literal expression.
  MemberReferenceTree | A tree node for a member reference expression.
  MemberReferenceTree.ReferenceMode | There are two kinds of member references: (i) method references and (ii) constructor references
  MemberSelectTree | A tree node for a member access expression.
  MethodInvocationTree | A tree node for a method invocation expression.
  MethodTree | A tree node for a method or annotation type element declaration.
  ModifiersTree | A tree node for the modifiers, including annotations, for a declaration.
  ModuleTree | A tree node for a module declaration.
  ModuleTree.ModuleKind | The kind of the module.
  NewArrayTree | A tree node for an expression to create a new instance of an array.
  NewClassTree | A tree node to declare a new instance of a class.
  OpensTree | A tree node for an 'opens' directive in a module declaration.
  PackageTree | Represents the package declaration.
  ParameterizedTypeTree | A tree node for a type expression involving type parameters.
  ParenthesizedTree | A tree node for a parenthesized expression.
  PrimitiveTypeTree | A tree node for a primitive type.
  ProvidesTree | A tree node for a 'provides' directive in a module declaration.
  RequiresTree | A tree node for a 'requires' directive in a module declaration.
  ReturnTree | A tree node for a `return` statement.
  Scope | Interface for determining locally available program elements, such as local variables and imports.
  StatementTree | A tree node used as the base class for the different kinds of statements.
  SwitchExpressionTree | Deprecated, for removal: This API element is subject to removal in a future version. This method is modeling switch expressions, which are part of a preview feature and may be removed if the preview feature is removed.
  SwitchTree | A tree node for a `switch` statement.
  SynchronizedTree | A tree node for a `synchronized` statement.
  ThrowTree | A tree node for a `throw` statement.
  Tree | Common interface for all nodes in an abstract syntax tree.
  Tree.Kind | Enumerates all kinds of trees.
  TreeVisitor | A visitor of trees, in the style of the visitor design pattern.
  TryTree | A tree node for a `try` statement.
  TypeCastTree | A tree node for a type cast expression.
  TypeParameterTree | A tree node for a type parameter.
  UnaryTree | A tree node for postfix and unary expressions.
  UnionTypeTree | A tree node for a union type expression in a multicatch variable declaration.
  UsesTree | A tree node for a 'uses' directive in a module declaration.
  VariableTree | A tree node for a variable declaration.
  WhileLoopTree | A tree node for a `while` loop statement.
  WildcardTree | A tree node for a wildcard type argument.
  YieldTree | Deprecated, for removal: This API element is subject to removal in a future version. This class is modeling yield from switch expressions, which are part of a preview feature and may be removed if the preview feature is removed.

- Classes in com.sun.source.tree used by com.sun.source.util
  Class | Description
  --- | ---
  AnnotatedTypeTree | A tree node for an annotated type.
  AnnotationTree | A tree node for an annotation.
  ArrayAccessTree | A tree node for an array access expression.
  ArrayTypeTree | A tree node for an array type.
  AssertTree | A tree node for an `assert` statement.
  AssignmentTree | A tree node for an assignment expression.
  BinaryTree | A tree node for a binary expression.
  BlockTree | A tree node for a statement block.
  BreakTree | A tree node for a `break` statement.
  CaseTree | A tree node for a `case` in a `switch` statement or expression.
  CatchTree | A tree node for a `catch` block in a `try` statement.
  ClassTree | A tree node for a class, interface, enum, or annotation type declaration.
  CompilationUnitTree | Represents the abstract syntax tree for compilation units (source files) and package declarations (package-info.java).
  CompoundAssignmentTree | A tree node for compound assignment operator.
  ConditionalExpressionTree | A tree node for the conditional operator ?
  ContinueTree | A tree node for a `continue` statement.
  DoWhileLoopTree | A tree node for a `do` statement.
  EmptyStatementTree | A tree node for an empty (skip) statement.
  EnhancedForLoopTree | A tree node for an "enhanced" `for` loop statement.
  ErroneousTree | A tree node to stand in for a malformed expression.
  ExpressionStatementTree | A tree node for an expression statement.
  ForLoopTree | A tree node for a basic `for` loop statement.
  IdentifierTree | A tree node for an identifier expression.
  IfTree | A tree node for an `if` statement.
  ImportTree | A tree node for an import declaration.
  InstanceOfTree | A tree node for an `instanceof` expression.
  IntersectionTypeTree | A tree node for an intersection type in a cast expression.
  LabeledStatementTree | A tree node for a labeled statement.
  LambdaExpressionTree | A tree node for a lambda expression.
  LiteralTree | A tree node for a literal expression.
  MemberReferenceTree | A tree node for a member reference expression.
  MemberSelectTree | A tree node for a member access expression.
  MethodInvocationTree | A tree node for a method invocation expression.
  MethodTree | A tree node for a method or annotation type element declaration.
  ModifiersTree | A tree node for the modifiers, including annotations, for a declaration.
  NewArrayTree | A tree node for an expression to create a new instance of an array.
  NewClassTree | A tree node to declare a new instance of a class.
  PackageTree | Represents the package declaration.
  ParameterizedTypeTree | A tree node for a type expression involving type parameters.
  ParenthesizedTree | A tree node for a parenthesized expression.
  PrimitiveTypeTree | A tree node for a primitive type.
  ReturnTree | A tree node for a `return` statement.
  Scope | Interface for determining locally available program elements, such as local variables and imports.
  SwitchExpressionTree | Deprecated, for removal: This API element is subject to removal in a future version. This method is modeling switch expressions, which are part of a preview feature and may be removed if the preview feature is removed.
  SwitchTree | A tree node for a `switch` statement.
  SynchronizedTree | A tree node for a `synchronized` statement.
  ThrowTree | A tree node for a `throw` statement.
  Tree | Common interface for all nodes in an abstract syntax tree.
  TreeVisitor | A visitor of trees, in the style of the visitor design pattern.
  TryTree | A tree node for a `try` statement.
  TypeCastTree | A tree node for a type cast expression.
  TypeParameterTree | A tree node for a type parameter.
  UnaryTree | A tree node for postfix and unary expressions.
  UnionTypeTree | A tree node for a union type expression in a multicatch variable declaration.
  VariableTree | A tree node for a variable declaration.
  WhileLoopTree | A tree node for a `while` loop statement.
  WildcardTree | A tree node for a wildcard type argument.
  YieldTree | Deprecated, for removal: This API element is subject to removal in a future version. This class is modeling yield from switch expressions, which are part of a preview feature and may be removed if the preview feature is removed.