Top Description Constructors Methods
org.codehaus.groovy.syntax

public abstract Class CSTNode

extends Object
Class Inheritance
Known Direct Subclasses
org.codehaus.groovy.syntax.Reduction, org.codehaus.groovy.syntax.Token
Imports
org.apache.groovy.io.StringBuilderWriter, org.codehaus.groovy.GroovyBugError, java.io.PrintWriter, .Writer

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 its root.
See Also
antlr.Parser, Token, org.codehaus.groovy.syntax.Reduction, org.codehaus.groovy.syntax.Types

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
public CSTNode
add(CSTNode element)

Adds an element to the node.

public void
addChildrenOf(CSTNode of)

Adds all children of the specified node to this one.

public abstract Reduction
asReduction()

Creates a Reduction from this node.

public boolean
canMean(int type)

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

public int
children()

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

public abstract CSTNode
get(int index)

Returns the specified element, or null.

public CSTNode
get(int index, boolean safe)

Returns the specified element, or Token.NULL if safe is set and the specified element is null (or doesn't exist).

public String
getDescription()

Returns a description of the node.

public int
getMeaning()

Returns the meaning of this node.

public int
getMeaningAs(int[] types)

Returns the first matching meaning of the specified types.

public abstract Token
getRoot()

Returns the root of the node.

public Token
getRoot(boolean safe)

Returns the root of the node, the Token that indicates its type.

public String
getRootText()

Returns the text of the root.

public int
getStartColumn()

Returns the starting column of the node.

public int
getStartLine()

Returns the starting line of the node.

public int
getType()

Returns the actual type of the node.

public boolean
hasChildren()

Returns true if the node has any non-root elements.

public boolean
isA(int type)

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

public boolean
isAllOf(int[] types)

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

public boolean
isAnExpression()

Returns true if the node is a complete expression.

public boolean
isEmpty()

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

public boolean
isOneOf(int[] types)

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

public void
markAsExpression()

Marks the node a complete expression.

pack-priv boolean
matches(int type)

Returns true if the node matches the specified type.

pack-priv boolean
matches(int type, int child1)

Returns true if the node and its first child match the specified types.

pack-priv boolean
matches(int type, int child1, int child2)

Returns true if the node and its first and second child match the specified types.

pack-priv boolean
matches(int type, int child1, int child2, int child3)

Returns true if the node and its first three children match the specified types.

pack-priv boolean
matches(int type, int child1, int child2, int child3, int child4)

Returns true if the node an its first four children match the specified types.

public CSTNode
set(int index, CSTNode element)

Sets an element node in at the specified index.

public CSTNode
setMeaning(int meaning)

Sets the meaning for this node (and its root Token).

public abstract int
size()

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

public String
toString()

Overrides java.lang.Object.toString.

Formats the node as a String and returns it.
public void
write(PrintWriter writer)

Formats the node and writes it to the specified Writer.

protected void
write(PrintWriter writer, String indent)

Formats the node and writes it to the specified Writer.

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAllwaitwaitwait

Constructor Detail

CSTNodeback to summary
public CSTNode()

Method Detail

addback to summary
public CSTNode add(CSTNode element)

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

addChildrenOfback to summary
public void addChildrenOf(CSTNode of)

Adds all children of the specified node to this one. Not all nodes support this operation!

asReductionback to summary
public abstract Reduction asReduction()

Creates a Reduction from this node. Returns self if the node is already a Reduction.

canMeanback to summary
public boolean canMean(int type)

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

childrenback to summary
public int children()

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

getback to summary
public abstract CSTNode get(int index)

Returns the specified element, or null.

getback to summary
public CSTNode get(int index, boolean safe)

Returns the specified element, or Token.NULL if safe is set and the specified element is null (or doesn't exist).

getDescriptionback to summary
public String getDescription()

Returns a description of the node.

getMeaningback to summary
public int getMeaning()

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

getMeaningAsback to summary
public int getMeaningAs(int[] types)

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

getRootback to summary
public abstract 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().

getRootback to summary
public Token getRoot(boolean safe)

Returns the root of the node, the Token that indicates its type. Returns a Token.NULL if safe and the actual root is null.

getRootTextback to summary
public 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.

getStartColumnback to summary
public int getStartColumn()

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

getStartLineback to summary
public int getStartLine()

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

getTypeback to summary
public int getType()

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

hasChildrenback to summary
public boolean hasChildren()

Returns true if the node has any non-root elements.

isAback to summary
public boolean isA(int type)

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

isAllOfback to summary
public boolean isAllOf(int[] types)

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

isAnExpressionback to summary
public boolean isAnExpression()

Returns true if the node is a complete expression.

isEmptyback to summary
public boolean isEmpty()

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

isOneOfback to summary
public boolean isOneOf(int[] types)

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

markAsExpressionback to summary
public void markAsExpression()

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

matchesback to summary
pack-priv boolean matches(int type)

Returns true if the node matches the specified type. Effectively a synonym for isA(). Missing nodes are Token.NULL.

matchesback to summary
pack-priv boolean matches(int type, int child1)

Returns true if the node and its first child match the specified types. Missing nodes are Token.NULL.

matchesback to summary
pack-priv boolean matches(int type, int child1, int child2)

Returns true if the node and its first and second child match the specified types. Missing nodes are Token.NULL.

matchesback to summary
pack-priv boolean matches(int type, int child1, int child2, int child3)

Returns true if the node and its first three children match the specified types. Missing nodes are Token.NULL.

matchesback to summary
pack-priv boolean matches(int type, int child1, int child2, int child3, int child4)

Returns true if the node an its first four children match the specified types. Missing nodes have type Types.NULL.

setback to summary
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!

setMeaningback to summary
public CSTNode setMeaning(int meaning)

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

sizeback to summary
public abstract int size()

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

toStringback to summary
public String toString()

Overrides java.lang.Object.toString.

Formats the node as a String and returns it.

Returns:String

Doc from java.lang.Object.toString.

a string representation of the object.

writeback to summary
public void write(PrintWriter writer)

Formats the node and writes it to the specified Writer.

writeback to summary
protected void write(PrintWriter writer, String indent)

Formats the node and writes it to the specified Writer. The indent is prepended to each output line, and is increased for each recursion.