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

Version:
  $Id: Token.java 6778 2007-07-02 10:40:33Z glaforge $
Author:
  bob mcwhirter, Chris Poirier
See Also:
  `Parser`, `Token`, `Reduction`, `Types`

Field Summary
`static Token` `EOF`
`static Token` `NULL`

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

Method Summary
`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.

Copyright © 2003-2008 The Codehaus. All rights reserved.