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`.
  Author:
    bob mcwhirter, Chris Poirier
  See Also:
    `Parser`, `Token`, `Reduction`, `Types`

- - ### Field Summary

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

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `Token(int type, java.lang.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 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.
    `java.lang.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.
    `java.lang.String` | `getText()` Returns the text of the token.
    `int` | `getType()` Returns the actual type of the node.
    `static Token` | `newDecimal(java.lang.String text, int startLine, int startColumn)` Creates a token that represents a decimal number.
    `static Token` | `newIdentifier(java.lang.String text, int startLine, int startColumn)` Creates a token that represents an identifier.
    `static Token` | `newInteger(java.lang.String text, int startLine, int startColumn)` Creates a token that represents an integer.
    `static Token` | `newKeyword(java.lang.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(java.lang.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(java.lang.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(java.lang.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,
                       java.lang.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 java.lang.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 java.lang.String getText()

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

    - #### setText

          public void setText(java.lang.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(java.lang.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(java.lang.String text,
                                        int startLine,
                                        int startColumn)

      Creates a token that represents a double-quoted string.

    - #### newIdentifier

          public static Token newIdentifier(java.lang.String text,
                                            int startLine,
                                            int startColumn)

      Creates a token that represents an identifier.

    - #### newInteger

          public static Token newInteger(java.lang.String text,
                                         int startLine,
                                         int startColumn)

      Creates a token that represents an integer.

    - #### newDecimal

          public static Token newDecimal(java.lang.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(java.lang.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.