Package org.codehaus.groovy.syntax

## Class Token

- java.lang.Object
- - org.codehaus.groovy.syntax.CSTNode
  - - org.codehaus.groovy.syntax.Token

-     public class Token
      extends CSTNode

  A `CSTNode` produced by the `Lexer`.
  See Also:
    `Parser`, `Token`, `Reduction`, `Types`

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static Token` | `EOF` |
    `static Token` | `NULL` |

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `Token​(int type, String text, int startLine, int startColumn)` | Initializes the Token with the specified information.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `Reduction` | `asReduction()` | Creates a `Reduction` from this token.
    `Reduction` | `asReduction​(CSTNode second)` | Creates a `Reduction` from this token, adding the supplied node as the second element.
    `Reduction` | `asReduction​(CSTNode second, CSTNode third)` | Creates a `Reduction` from this token, adding the supplied nodes as the second and third element, respectively.
    `Reduction` | `asReduction​(CSTNode second, CSTNode third, CSTNode fourth)` | Creates a `Reduction` from this token, adding the supplied nodes as the second, third, and fourth element, respectively.
    `Token` | `dup()` | Returns a copy of this Token.
    `CSTNode` | `get​(int index)` | Returns the specified element, or null.
    `int` | `getMeaning()` | Returns the meaning of this node.
    `Token` | `getRoot()` | Returns the root of the node.
    `String` | `getRootText()` | Returns the text of the root node.
    `int` | `getStartColumn()` | Returns the starting column of the node.
    `int` | `getStartLine()` | Returns the starting line of the node.
    `String` | `getText()` | Returns the text of the token.
    `int` | `getType()` | Returns the actual type of the node.
    `static Token` | `newDecimal​(String text, int startLine, int startColumn)` | Creates a token that represents a decimal number.
    `static Token` | `newIdentifier​(String text, int startLine, int startColumn)` | Creates a token that represents an identifier.
    `static Token` | `newInteger​(String text, int startLine, int startColumn)` | Creates a token that represents an integer.
    `static Token` | `newKeyword​(String text, int startLine, int startColumn)` | Creates a token that represents a keyword.
    `static Token` | `newPlaceholder​(int type)` | Creates a token with the specified meaning.
    `static Token` | `newString​(String text, int startLine, int startColumn)` | Creates a token that represents a double-quoted string.
    `static Token` | `newSymbol​(int type, int startLine, int startColumn)` | Creates a token that represents a symbol, using a library for the text.
    `static Token` | `newSymbol​(String type, int startLine, int startColumn)` | Creates a token that represents a symbol, using a library for the type.
    `CSTNode` | `setMeaning​(int meaning)` | Sets the meaning for this node (and it's root Token).
    `void` | `setText​(String text)` | Not advisable, but if you need to adjust the token's text, this will do it.
    `int` | `size()` | Returns the number of elements in the node (including root).

    - ### Methods inherited from class org.codehaus.groovy.syntax.CSTNode

      `add, addChildrenOf, canMean, children, get, getDescription, getMeaningAs, getRoot, hasChildren, isA, isAllOf, isAnExpression, isEmpty, isOneOf, markAsExpression, set, toString, write, write`

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

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### NULL

          public static final Token NULL

    - #### EOF

          public static final Token EOF

  - ### Constructor Detail

    - #### Token

          public Token​(int type,
                       String text,
                       int startLine,
                       int startColumn)

      Initializes the Token with the specified information.

  - ### Method Detail

    - #### dup

          public Token dup()

      Returns a copy of this Token.

    - #### getMeaning

          public int getMeaning()

      Returns the meaning of this node. If the node isEmpty(), returns the type of Token.NULL.
      Overrides:
        `getMeaning` in class `CSTNode`

    - #### setMeaning

          public CSTNode setMeaning​(int meaning)

      Sets the meaning for this node (and it's root Token). Not valid if the node isEmpty(). Returns this token, for convenience.
      Overrides:
        `setMeaning` in class `CSTNode`

    - #### getType

          public int getType()

      Returns the actual type of the node. If the node isEmpty(), returns the type of Token.NULL.
      Overrides:
        `getType` in class `CSTNode`

    - #### size

          public int size()

      Returns the number of elements in the node (including root).
      Specified by:
        `size` in class `CSTNode`

    - #### get

          public CSTNode get​(int index)

      Returns the specified element, or null.
      Specified by:
        `get` in class `CSTNode`

    - #### getRoot

          public Token getRoot()

      Returns the root of the node. By convention, all nodes have a Token as the first element (or root), which indicates the type of the node. May return null if the node `isEmpty()`.
      Specified by:
        `getRoot` in class `CSTNode`

    - #### getRootText

          public String getRootText()

      Returns the text of the root node. Uses `getRoot(true)` to get the root, so you will only receive null in return if the root token returns it.
      Overrides:
        `getRootText` in class `CSTNode`

    - #### getText

          public String getText()

      Returns the text of the token. Equivalent to `getRootText()` when called directly.

    - #### setText

          public void setText​(String text)

      Not advisable, but if you need to adjust the token's text, this will do it.

    - #### getStartLine

          public int getStartLine()

      Returns the starting line of the node. Returns -1 if not known.
      Overrides:
        `getStartLine` in class `CSTNode`

    - #### getStartColumn

          public int getStartColumn()

      Returns the starting column of the node. Returns -1 if not known.
      Overrides:
        `getStartColumn` in class `CSTNode`

    - #### asReduction

          public Reduction asReduction()

      Creates a `Reduction` from this token. Returns self if the node is already a `Reduction`.
      Specified by:
        `asReduction` in class `CSTNode`

    - #### asReduction

          public Reduction asReduction​(CSTNode second)

      Creates a `Reduction` from this token, adding the supplied node as the second element.

    - #### asReduction

          public Reduction asReduction​(CSTNode second,
                                       CSTNode third)

      Creates a `Reduction` from this token, adding the supplied nodes as the second and third element, respectively.

    - #### asReduction

          public Reduction asReduction​(CSTNode second,
                                       CSTNode third,
                                       CSTNode fourth)

      Creates a `Reduction` from this token, adding the supplied nodes as the second, third, and fourth element, respectively.

    - #### newKeyword

          public static Token newKeyword​(String text,
                                         int startLine,
                                         int startColumn)

      Creates a token that represents a keyword. Returns null if the specified text isn't a keyword.

    - #### newString

          public static Token newString​(String text,
                                        int startLine,
                                        int startColumn)

      Creates a token that represents a double-quoted string.

    - #### newIdentifier

          public static Token newIdentifier​(String text,
                                            int startLine,
                                            int startColumn)

      Creates a token that represents an identifier.

    - #### newInteger

          public static Token newInteger​(String text,
                                         int startLine,
                                         int startColumn)

      Creates a token that represents an integer.

    - #### newDecimal

          public static Token newDecimal​(String text,
                                         int startLine,
                                         int startColumn)

      Creates a token that represents a decimal number.

    - #### newSymbol

          public static Token newSymbol​(int type,
                                        int startLine,
                                        int startColumn)

      Creates a token that represents a symbol, using a library for the text.

    - #### newSymbol

          public static Token newSymbol​(String type,
                                        int startLine,
                                        int startColumn)

      Creates a token that represents a symbol, using a library for the type.

    - #### newPlaceholder

          public static Token newPlaceholder​(int type)

      Creates a token with the specified meaning.