Package: org.codehaus.groovy.syntax

## [Java] Class Token

- org.codehaus.groovy.syntax.Token

- A `CSTNode` produced by the `Lexer`.

  See Also:
    Parser
    Token
    Reduction
    Types
  Authors:
    bob mcwhirter
    Chris Poirier

- - ### Field Summary

    Fields
    Modifiers | Name | Description
    --- | --- | ---
    `static Token` | `EOF` |
    `static Token` | `NULL` |

  - ### Constructor Summary

    Constructors
    Constructor and description
    `Token (int type, String text, int startLine, int startColumn)` Initializes the Token with the specified information.

  - ### Methods Summary

    Methods
    Type Params | Return Type | Name and 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).

  - ### Inherited Methods Summary

    Inherited Methods
    Methods inherited from class | Name
    --- | ---
    `class CSTNode` | `add, addChildrenOf, asReduction, canMean, children, get, get, getDescription, getMeaning, getMeaningAs, getRoot, getRoot, getRootText, getStartColumn, getStartLine, getType, hasChildren, isA, isAllOf, isAnExpression, isEmpty, isOneOf, markAsExpression, set, setMeaning, size, toString, write, write`
    `class Object` | `wait, wait, wait, equals, toString, hashCode, getClass, notify, notifyAll`

- - ### Field Detail

    - #### public static final Token EOF

    - #### public static final Token NULL

  - ### Constructor Detail

    - #### public Token(int type, String text, int startLine, int startColumn)

      Initializes the Token with the specified information.

  - ### Method Detail

    - #### public Reduction asReduction()

      Creates a `Reduction` from this token. Returns self if the node is already a `Reduction`.

    - #### public Reduction asReduction(CSTNode second)

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

    - #### public Reduction asReduction(CSTNode second, CSTNode third)

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

    - #### 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.

    - #### public Token dup()

      Returns a copy of this Token.

    - #### public CSTNode get(int index)

      Returns the specified element, or null.

    - #### public int getMeaning()

      Returns the meaning of this node. If the node isEmpty(), returns the type of Token.NULL.

    - #### 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()`.

    - #### 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.

    - #### public int getStartColumn()

      Returns the starting column of the node. Returns -1 if not known.

    - #### public int getStartLine()

      Returns the starting line of the node. Returns -1 if not known.

    - #### public String getText()

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

    - #### public int getType()

      Returns the actual type of the node. If the node isEmpty(), returns the type of Token.NULL.

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

      Creates a token that represents a decimal number.

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

      Creates a token that represents an identifier.

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

      Creates a token that represents an integer.

    - #### 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.

    - #### public static Token newPlaceholder(int type)

      Creates a token with the specified meaning.

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

      Creates a token that represents a double-quoted string.

    - #### public static Token newSymbol(int type, int startLine, int startColumn)

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

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

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

    - #### 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.

    - #### public void setText(String text)

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

    - #### public int size()

      Returns the number of elements in the node (including root).