org.codehaus.groovy.syntax
Class Reduction

A syntax reduction, produced by the Parser.

see:
antlr.Parser
see:
Token
see:
CSTNode
see:
Types
author:
bob mcwhirter
author:
Chris Poirier
version:
$Id: Reduction.java 7922 2007-09-04 01:42:57Z paulk $

Field Summary
 Reduction EMPTY
           
 List elements
           
 boolean marked
           
 
Constructor Summary
Reduction(Token root)
            Initializes the Reduction with the specified root.
Reduction()
            Initializes the Reduction to empty.
 
Method Summary
CSTNode add(CSTNode element)
           Adds an element to the node.
Reduction asReduction()
           Creates a Reduction from this node.
CSTNode get(int index)
           Returns the specified element, or null.
Token getRoot()
           Returns the root of the node, the Token that indicates it's type.
boolean isAnExpression()
           Returns true if the node is a complete expression.
boolean isEmpty()
           Returns true if the node is completely empty (no root, even).
void markAsExpression()
           Marks the node a complete expression.
static Reduction newContainer()
           Creates a new Reduction with Token.NULL as it's root.
CSTNode remove(int index)
           Removes a node from the Reduction.
CSTNode set(int index, CSTNode element)
           Sets an element in at the specified index.
int size()
           Returns the number of elements in the node.
 

Constructor Detail

Reduction

public Reduction(Token root)
Initializes the Reduction with the specified root.


Reduction

Reduction()
Initializes the Reduction to empty.


Method Detail

add

public CSTNode add(CSTNode element)
Adds an element to the node.


asReduction

public Reduction asReduction()
Creates a Reduction from this node. Returns self if the node is already a Reduction.


get

public CSTNode get(int index)
Returns the specified element, or null.


getRoot

public Token getRoot()
Returns the root of the node, the Token that indicates it's type. Returns null if there is no root (usually only if the node is a placeholder of some kind -- see isEmpty()).


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


markAsExpression

public void markAsExpression()
Marks the node a complete expression.


newContainer

public static Reduction newContainer()
Creates a new Reduction with Token.NULL as it's root.


remove

public CSTNode remove(int index)
Removes a node from the Reduction. You cannot remove the root node (index 0).


set

public CSTNode set(int index, CSTNode element)
Sets an element in at the specified index.


size

public int size()
Returns the number of elements in the node.