Package org.codehaus.groovy.transform.tailrec

# Class AstHelper

java.lang.Object
org.codehaus.groovy.transform.tailrec.AstHelper

public class AstHelper extends Object
Helping to create a few standard AST constructs

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static ExpressionStatement`
  `createVariableAlias(String aliasName, ClassNode variableType, String variableName)`
  Creates an alias variable that references another variable.
  `static ExpressionStatement`
  `createVariableDefinition(String variableName, ClassNode variableType, Expression value)`
  Creates a local variable declaration for the supplied value.
  `static ExpressionStatement`
  `createVariableDefinition(String variableName, ClassNode variableType, Expression value, boolean variableShouldBeFinal)`
  Creates a local variable declaration for the supplied value.
  `static VariableExpression`
  `createVariableReference(Map<String,?> variableSpec)`
  Creates a variable reference from a name/type specification map.
  `static Statement`
  `recurByThrowStatement()`
  This statement will throw exception which will be caught and redirected to jump to surrounding while loop's start label Also works from within Closures but is a tiny bit slower
  `static Statement`
  `recurStatement()`
  This statement should make the code jump to surrounding while loop's start label Does not work from within Closures

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Method Details

  - ### createVariableDefinition

    public static ExpressionStatement createVariableDefinition(String variableName, ClassNode variableType, Expression value)
    Creates a local variable declaration for the supplied value.
    Parameters:
      `variableName` - the declared variable name
      `variableType` - the declared variable type
      `value` - the initial value expression
    Returns:
      a declaration statement for the new local variable

  - ### createVariableDefinition

    public static ExpressionStatement createVariableDefinition(String variableName, ClassNode variableType, Expression value, boolean variableShouldBeFinal)
    Creates a local variable declaration for the supplied value.
    Parameters:
      `variableName` - the declared variable name
      `variableType` - the declared variable type
      `value` - the initial value expression
      `variableShouldBeFinal` - whether the declared variable should be `final`
    Returns:
      a declaration statement for the new local variable

  - ### createVariableAlias

    public static ExpressionStatement createVariableAlias(String aliasName, ClassNode variableType, String variableName)
    Creates an alias variable that references another variable.
    Parameters:
      `aliasName` - the alias variable name
      `variableType` - the alias variable type
      `variableName` - the referenced variable name
    Returns:
      a declaration statement for the alias variable

  - ### createVariableReference

    public static VariableExpression createVariableReference(Map<String,?> variableSpec)
    Creates a variable reference from a name/type specification map.
    Parameters:
      `variableSpec` - a map containing `name` and `type` entries
    Returns:
      a variable expression for the supplied specification

  - ### recurStatement

    public static Statement recurStatement()
    This statement should make the code jump to surrounding while loop's start label Does not work from within Closures

  - ### recurByThrowStatement

    public static Statement recurByThrowStatement()
    This statement will throw exception which will be caught and redirected to jump to surrounding while loop's start label Also works from within Closures but is a tiny bit slower