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

Author:
  bob mcwhirter, Chris Poirier
See Also:
  - `Parser`
  - `Token`
  - `Reduction`
  - `Types`

## Field Summary

Fields
Modifier and Type
Field
Description
`static final Token`
`EOF`
`static final 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

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 Details

### NULL

public static final Token NULL

### EOF

public static final Token EOF

## Constructor Details

### Token

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

## Method Details

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