Tree (Java SE 10 & JDK 10 )
Keywords: jdk.nashorn.api.tree.Tree interface

Module jdk.scripting.nashorn
Package jdk.nashorn.api.tree

## Interface Tree

- All Known Subinterfaces:
    `ArrayAccessTree`, `ArrayLiteralTree`, `AssignmentTree`, `BinaryTree`, `BlockTree`, `BreakTree`, `CaseTree`, `CatchTree`, `ClassDeclarationTree`, `ClassExpressionTree`, `CompilationUnitTree`, `CompoundAssignmentTree`, `ConditionalExpressionTree`, `ConditionalLoopTree`, `ContinueTree`, `DebuggerTree`, `DoWhileLoopTree`, `EmptyStatementTree`, `ErroneousTree`, `ExportEntryTree`, `ExpressionStatementTree`, `ExpressionTree`, `ForInLoopTree`, `ForLoopTree`, `ForOfLoopTree`, `FunctionCallTree`, `FunctionDeclarationTree`, `FunctionExpressionTree`, `GotoTree`, `IdentifierTree`, `IfTree`, `ImportEntryTree`, `InstanceOfTree`, `LabeledStatementTree`, `LiteralTree`, `LoopTree`, `MemberSelectTree`, `ModuleTree`, `NewTree`, `ObjectLiteralTree`, `ParenthesizedTree`, `PropertyTree`, `RegExpLiteralTree`, `ReturnTree`, `SpreadTree`, `StatementTree`, `SwitchTree`, `TemplateLiteralTree`, `ThrowTree`, `TryTree`, `UnaryTree`, `VariableTree`, `WhileLoopTree`, `WithTree`, `YieldTree`

      public interface Tree

  Common interface for all nodes in an abstract syntax tree.

  WARNING: This interface and its sub-interfaces are subject to change as the ECMAScript programming language evolves.

  Since:
    9

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Interface | Description
    --- | --- | ---
    `static class` | `Tree.Kind` | Enumerates all kinds of trees.

  - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `<R,D> R` | `accept​(TreeVisitor<R,D> visitor, D data)` | Accept method used to implement the visitor pattern.
    `long` | `getEndPosition()` | End character offset of this Tree within the source.
    `Tree.Kind` | `getKind()` | Gets the kind of this tree.
    `long` | `getStartPosition()` | Start character offset of this Tree within the source.

- - ### Method Detail

    - #### getStartPosition

          long getStartPosition()

      Start character offset of this Tree within the source.
      Returns:
        the position

    - #### getEndPosition

          long getEndPosition()

      End character offset of this Tree within the source.
      Returns:
        the position

    - #### getKind

          Tree.Kind getKind()

      Gets the kind of this tree.
      Returns:
        the kind of this tree.

    - #### accept

          <R,D> R accept​(TreeVisitor<R,D> visitor,
                         D data)

      Accept method used to implement the visitor pattern. The visitor pattern is used to implement operations on trees.
      Type Parameters:
        `R` - result type of this operation.
        `D` - type of additional data.
      Parameters:
        `visitor` - tree visitor
        `data` - additional data passed to visitor methods
      Returns:
        the value from visitor's visit methods