|Helping to create a few standard AST constructs
|Collect all recursive calls within method
|Check if there are any recursive calls in a method
|Wrap the body of a method in a while loop, nested in a try-catch.
|Test if a method call is recursive if called within a given method node.
|Adds explicit return statements to implicit return points in a closure.
|Translates all return statements into an invocation of the next iteration.
|Tool for replacing Statement objects in an AST by other Statement instances.
|Handles generation of code for the
|Since a ternary statement has more than one exit point tail-recursiveness testing cannot be easily done.
|Replace all access to variables and args by new variables.
|Tool for replacing VariableExpression instances in an AST by other VariableExpression instances.
|An expression transformer used in the process of replacing the access to variables
|Exception will be thrown by recursive calls in closures and caught in while loop to continue to LOOP_LABEL