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.
See Also:
Parser, Token, Reduction, Types
  • 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 its 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.