org.codehaus.groovy.syntax
Class Token

java.lang.Object
  extended by org.codehaus.groovy.syntax.CSTNode
      extended by 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-2010 The Codehaus. All rights reserved.