## org.codehaus.groovy.syntax
Class Reduction

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

    public class Reduction

extends CSTNode

A syntax reduction, produced by the `Parser`.

Version:
  $Id: Reduction.java 7922 2007-09-04 01:42:57Z paulk $
Author:
  bob mcwhirter, Chris Poirier
See Also:
  `Parser`, `Token`, `CSTNode`, `Types`

Field Summary
`static Reduction` `EMPTY`

Constructor Summary
`Reduction(Token root)` Initializes the `Reduction` with the specified root.

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.

Methods inherited from class org.codehaus.groovy.syntax.CSTNode
`addChildrenOf, canMean, children, get, getDescription, getMeaning, getMeaningAs, getRoot, getRootText, getStartColumn, getStartLine, getType, hasChildren, isA, isAllOf, isOneOf, setMeaning, toString, write, write`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Field Detail

### EMPTY

    public static final Reduction EMPTY

Constructor Detail

### Reduction

    public Reduction(Token root)

  Initializes the `Reduction` with the specified root.

Method Detail

### newContainer

    public static Reduction newContainer()

  Creates a new `Reduction` with `Token.NULL` as it's root.

### isEmpty

    public boolean isEmpty()

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

  Overrides:
    `isEmpty` in class `CSTNode`

### size

    public int size()

  Returns the number of elements in the node.

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

  Specified by:
    `getRoot` in class `CSTNode`

### markAsExpression

    public void markAsExpression()

  Marks the node a complete expression.

  Overrides:
    `markAsExpression` in class `CSTNode`

### isAnExpression

    public boolean isAnExpression()

  Returns true if the node is a complete expression.

  Overrides:
    `isAnExpression` in class `CSTNode`

### add

    public CSTNode add(CSTNode element)

  Adds an element to the node.

  Overrides:
    `add` in class `CSTNode`

### set

    public CSTNode set(int index,
                       CSTNode element)

  Sets an element in at the specified index.

  Overrides:
    `set` in class `CSTNode`

### remove

    public CSTNode remove(int index)

  Removes a node from the `Reduction`. You cannot remove the root node (index 0).

### asReduction

    public Reduction asReduction()

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

  Specified by:
    `asReduction` in class `CSTNode`

Copyright © 2003-2008 The Codehaus. All rights reserved.