Groovy Documentation

## org.codehaus.groovy.syntax
[Java] Class CSTNode

    java.lang.Object
      org.codehaus.groovy.syntax.CSTNode

    public abstract class CSTNode
    extends java.lang.Object

An abstract base class for nodes in the concrete syntax tree that is the result of parsing. Note that the CSTNode is inextricably linked with the Token in that every CSTNode has a Token as it's root.

Authors:
  bob mcwhirter
  Chris Poirier

Version:
  \$Id\$

See Also:
  antlr.Parser
  Token
  Reduction
  Types

Method Summary
`CSTNode` | `add(CSTNode element)` Adds an element to the node.
`void` | `addChildrenOf(CSTNode of)`
`Reduction` | `asReduction()`
`boolean` | `canMean(int type)` Returns true if the node can be coerced to the specified type.
`int` | `children()` Returns the number of non-root elements in the node.
`CSTNode` | `get(int index)` Returns the specified element, or null.
`CSTNode` | `get(int index, boolean safe)`
`java.lang.String` | `getDescription()` Returns a description of the node.
`int` | `getMeaning()` Returns the meaning of this node.
`int` | `getMeaningAs(int[] types)` Returns the first matching meaning of the specified types.
`Token` | `getRoot()` Returns the root of the node.
`Token` | `getRoot(boolean safe)`
`java.lang.String` | `getRootText()` Returns the text of the root.
`int` | `getStartColumn()` Returns the starting column of the node.
`int` | `getStartLine()` Returns the starting line of the node.
`int` | `getType()` Returns the actual type of the node.
`boolean` | `hasChildren()`
`boolean` | `isA(int type)` Returns true if the node's meaning matches the specified type.
`boolean` | `isAllOf(int[] types)` Returns true if the node's meaning matches all of the specified types.
`boolean` | `isAnExpression()` Returns true if the node is a complete expression.
`boolean` | `isEmpty()` Returns true if the node is completely empty (no root, even).
`boolean` | `isOneOf(int[] types)` Returns true if the node's meaning matches any of the specified types.
`void` | `markAsExpression()` Marks the node a complete expression.
`CSTNode` | `set(int index, CSTNode element)` Sets an element node in at the specified index.
`CSTNode` | `setMeaning(int meaning)` Sets the meaning for this node (and it's root Token).
`int` | `size()` Returns the number of elements in the node (including root).
`java.lang.String` | `toString()` Formats the node as a `String` and returns it.
`void` | `write(java.io.PrintWriter writer)`
`protected void` | `write(java.io.PrintWriter writer, java.lang.String indent)`

Methods inherited from class java.lang.Object
java.lang.Object#wait(long), java.lang.Object#wait(long, int), java.lang.Object#wait(), java.lang.Object#equals(java.lang.Object), java.lang.Object#toString(), java.lang.Object#hashCode(), java.lang.Object#getClass(), java.lang.Object#notify(), java.lang.Object#notifyAll()

Method Detail

### add

    public CSTNode add(CSTNode element)

  Adds an element to the node. Returns the element for convenience. Not all nodes support this operation!

### addChildrenOf

    public void addChildrenOf(CSTNode of)

### asReduction

    public Reduction asReduction()

### canMean

    public boolean canMean(int type)

  Returns true if the node can be coerced to the specified type.

### children

    public int children()

  Returns the number of non-root elements in the node.

### get

    public CSTNode get(int index)

  Returns the specified element, or null.

### get

    public CSTNode get(int index, boolean safe)

### getDescription

    public java.lang.String getDescription()

  Returns a description of the node.

### getMeaning

    public int getMeaning()

  Returns the meaning of this node. If the node isEmpty(), returns the type of Token.NULL.

### getMeaningAs

    public int getMeaningAs(int[] types)

  Returns the first matching meaning of the specified types. Returns Types.UNKNOWN if there are no matches.

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

### getRoot

    public Token getRoot(boolean safe)

### getRootText

    public java.lang.String getRootText()

  Returns the text of the root. Uses `getRoot(true)` to get the root, so you will only receive null in return if the root token returns it.

### getStartColumn

    public int getStartColumn()

  Returns the starting column of the node. Returns -1 if not known.

### getStartLine

    public int getStartLine()

  Returns the starting line of the node. Returns -1 if not known.

### getType

    public int getType()

  Returns the actual type of the node. If the node isEmpty(), returns the type of Token.NULL.

### hasChildren

    public boolean hasChildren()

### isA

    public boolean isA(int type)

  Returns true if the node's meaning matches the specified type.

### isAllOf

    public boolean isAllOf(int[] types)

  Returns true if the node's meaning matches all of the specified types.

### isAnExpression

    public boolean isAnExpression()

  Returns true if the node is a complete expression.

### isEmpty

    public boolean isEmpty()

  Returns true if the node is completely empty (no root, even).

### isOneOf

    public boolean isOneOf(int[] types)

  Returns true if the node's meaning matches any of the specified types.

### markAsExpression

    public void markAsExpression()

  Marks the node a complete expression. Not all nodes support this operation!

### set

    public CSTNode set(int index, CSTNode element)

  Sets an element node in at the specified index. Returns the element for convenience. Not all nodes support this operation!

### setMeaning

    public CSTNode setMeaning(int meaning)

  Sets the meaning for this node (and it's root Token). Not valid if the node isEmpty(). Returns the node, for convenience.

### size

    public int size()

  Returns the number of elements in the node (including root).

### toString

    public java.lang.String toString()

  Formats the node as a `String` and returns it.

### write

    public void write(java.io.PrintWriter writer)

### write

    protected void write(java.io.PrintWriter writer, java.lang.String indent)

Groovy Documentation