Package 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`.

See Also:
  `Parser`, `Token`, `CSTNode`, `Types`

- ## Field Summary

  Fields
  Modifier and Type | Field | Description
  --- | --- | ---
  `static Reduction` | `EMPTY` |

- ## Constructor Summary

  Constructors
  Constructor | Description
  --- | ---
  `Reduction​(Token root)` | Initializes the `Reduction` with the specified root.

- ## Method Summary

  Modifier and Type | Method | Description
  --- | --- | ---
  `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 its 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 its 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 Details

  - ### EMPTY

    public static final Reduction EMPTY

- ## Constructor Details

  - ### Reduction

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

- ## Method Details

  - ### newContainer

    public static Reduction newContainer()
    Creates a new `Reduction` with `Token.NULL` as its 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 its 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`